Function at 0x465f20
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x164
push ebx
push ebp
push esi
push edi
or ecx, 0xffffffff
xor eax, eax
xor ebx, ebx
mov edi, 0x6b6e10
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6b6e10
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], ebx
call fcn.0049d9d0
mov ecx, dword [str.SoftwareRegisteredApplications]
push 1
lea eax, [esp + 0x1c]
push eax
push 0x6b6e10
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [esp + 0x50]
call fcn.0043c7f0
lea ecx, [esp + 0x18]
call fcn.004039f0
lea ecx, [esp + 0x24]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
call fcn.004ccff0
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x465f96
lea ecx, [eax + 4]
jmp 0x465f98
xor ecx, ecx
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x465fa5
add eax, 4
jmp 0x465fa7
xor eax, eax
mov edx, dword [esp + 0x3c]
push 0x20019
push ecx
push eax
push edx
lea ecx, [esp + 0x34]
call fcn.004cd0a0
test eax, eax
jne 0x466094
mov edx, dword [esp + 0x24]
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x88]
push ecx
push ebx
mov ebp, pe_nt_image_headers32
push edx
xor esi, esi
mov dword [esp + 0x34], ebp
call dword [0x6b9528]
cmp eax, ebx
jne 0x466094
or ecx, 0xffffffff
xor eax, eax
lea edi, [esp + 0x74]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], ebx
call fcn.0049d9d0
mov eax, dword [esp + 0x20]
test al, 1
jne 0x466061
mov ecx, eax
shr ecx, 1
lea edx, [ecx - 1]
test ecx, edx
jne 0x466039
lea ecx, [esp + 0x1c]
call fcn.004400e0
test eax, eax
je 0x466061
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x18]
shr eax, 1
push ecx
lea ecx, [edx + eax*4]
call fcn.00436200
mov eax, dword [esp + 0x20]
mov ecx, eax
and ecx, 0xfffffffe
add ecx, 2
and eax, 1
xor ecx, eax
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x18]
call fcn.004039f0
mov ecx, dword [esp + 0x24]
push ebx
push ebx
push ebx
push ebx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x88]
push eax
inc esi
push esi
push ecx
mov dword [esp + 0x34], ebp
call dword [0x6b9528]
cmp eax, ebx
je 0x465ff4
lea ecx, [esp + 0x24]
call fcn.004cd000
test dword [esp + 0x20], 0xfffffffe
mov dword [esp + 0x18], ebx
jbe 0x4664ba
nop
or ecx, 0xffffffff
xor eax, eax
mov edi, 0x6b6e10
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6b6e10
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], ebx
call fcn.0049d9d0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov eax, dword [edx + eax*4]
cmp eax, ebx
je 0x4660e6
add eax, 4
jmp 0x4660eb
mov eax, 0x6b6e10
mov edx, dword [str.SoftwareRegisteredApplications]
push 1
lea ecx, [esp + 0x14]
push ecx
push eax
push edx
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [esp + 0x38]
call fcn.0043c7f0
lea ecx, [esp + 0x10]
call fcn.004039f0
lea ecx, [esp + 0x24]
call fcn.0043c8c0
mov esi, dword [eax]
cmp esi, ebx
mov dword [esp + 0x10], esi
je 0x466139
mov eax, dword [esi]
and eax, 0xff
cmp eax, 0x80
jae 0x466139
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
cmp esi, ebx
mov ebp, esi
mov dword [esp + 0x54], ebp
je 0x46615a
mov ecx, dword [esi]
and ecx, 0xff
cmp ecx, 0x80
jae 0x46615a
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
lea ecx, [esp + 0x10]
call fcn.004039f0
cmp ebp, ebx
mov dword [esp + 0x14], ebx
lea eax, [ebp + 4]
jne 0x466173
mov eax, 0x6b6e10
push eax
lea edx, [esp + 0x18]
push str._sFileAssociations
push edx
call fcn.00403a60
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp eax, ebx
je 0x466414
test dword [eax], 0xffffff00
je 0x4663b9
mov cl, byte [eax + 4]
test cl, cl
je 0x4663b9
xor eax, eax
mov edi, 0x6b6e10
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6b6e10
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], ebx
call fcn.0049d9d0
mov eax, dword [esp + 0x180]
mov eax, dword [eax]
cmp eax, ebx
lea ecx, [eax + 4]
jne 0x4661e2
mov ecx, 0x6b6e10
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x4661ef
add eax, 4
jmp 0x4661f4
mov eax, 0x6b6e10
push 1
lea edx, [esp + 0x14]
push edx
push ecx
push eax
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [esp + 0x70]
call fcn.0043c7f0
lea ecx, [esp + 0x10]
call fcn.004039f0
lea ecx, [esp + 0x5c]
call fcn.0043c8c0
mov esi, dword [eax]
cmp esi, ebx
mov dword [esp + 0x58], esi
je 0x46623c
mov eax, dword [esi]
and eax, 0xff
cmp eax, 0x80
jae 0x46623c
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
cmp esi, ebx
mov dword [esp + 0x10], esi
je 0x46625b
mov ecx, dword [esi]
and ecx, 0xff
cmp ecx, 0x80
jae 0x46625b
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
lea ecx, [esp + 0x58]
call fcn.004039f0
cmp esi, ebx
je 0x46626d
lea edx, [esi + 4]
jmp 0x46626f
xor edx, edx
mov eax, dword [esp + 0x17c]
mov eax, dword [eax]
cmp eax, ebx
je 0x4662ea
lea ecx, [eax + 4]
cmp ecx, ebx
je 0x4662c9
cmp edx, ebx
je 0x4662c9
cmp eax, ebx
je 0x466290
lea esi, [eax + 4]
jmp 0x466292
xor esi, esi
mov eax, edx
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4662bd
test cl, cl
je 0x4662b4
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4662bd
add eax, 2
add esi, 2
test cl, cl
jne 0x466294
xor eax, eax
cmp eax, ebx
jmp 0x466398
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jmp 0x466398
cmp eax, ebx
je 0x4662ea
mov ecx, dword [eax]
shr ecx, 8
cmp ecx, ebx
je 0x4662ea
cmp eax, ebx
je 0x4662df
lea ecx, [eax + 4]
jmp 0x4662e1
xor ecx, ecx
cmp byte [ecx], 0
jne 0x46638b
cmp edx, ebx
je 0x4662f7
cmp byte [edx], 0
jne 0x4663a3
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov eax, dword [edx + eax*4]
cmp eax, ebx
mov esi, dword [esp + 0x178]
mov dword [esi], eax
je 0x466326
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
jae 0x466326
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
lea ecx, [esp + 0x10]
call fcn.004039f0
lea ecx, [esp + 0x5c]
call fcn.0043b130
lea ecx, [esp + 0x14]
call fcn.004039f0
lea ecx, [esp + 0x54]
mov dword [esp + 0x14], ebx
call fcn.004039f0
lea ecx, [esp + 0x24]
call fcn.0043b130
mov ecx, dword [esp + 0x1c]
cmp ecx, ebx
je 0x466366
push 3
call fcn.00430c60
mov eax, dword [esp + 0x20]
and eax, 1
lea ecx, [esp + 0x3c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], eax
call fcn.0043b130
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x164
ret
cmp eax, ebx
je 0x466394
add eax, 4
jmp 0x466396
xor eax, eax
cmp eax, edx
sete al
test al, al
jne 0x4662f7
lea ecx, [esp + 0x10]
call fcn.004039f0
lea ecx, [esp + 0x5c]
call fcn.0043b130
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x466414
mov ecx, dword [eax]
and ecx, 0xff
cmp ecx, 0x80
mov esi, eax
jae 0x466414
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x466403
mov edx, dword [esi]
and edx, 0xff
cmp edx, 0x80
jae 0x4663fe
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x466403
mov eax, 0xff
cmp eax, ebx
jne 0x466414
mov eax, dword [esp + 0x14]
push eax
call fcn.00499410
add esp, 4
cmp ebp, ebx
mov dword [esp + 0x14], ebx
je 0x46646f
mov ecx, dword [ebp]
and ecx, 0xff
cmp ecx, 0x80
jae 0x46646f
push ebp
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and eax, 0xff
cmp eax, 0x7f
jne 0x466462
mov edx, dword [ebp]
and edx, 0xff
cmp edx, 0x80
jae 0x46645d
push ebp
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x466462
mov eax, 0xff
cmp eax, ebx
jne 0x46646f
push ebp
call fcn.00499410
add esp, 4
lea ecx, [esp + 0x34]
call fcn.004039f0
lea ecx, [esp + 0x30]
mov dword [esp + 0x34], ebx
call fcn.004039f0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x30], ebx
call fcn.004039f0
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], ebx
call fcn.004039f0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
inc eax
shr ecx, 1
cmp eax, ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], eax
jb 0x4660b0
mov ebx, dword [esp + 0x178]
or ecx, 0xffffffff
xor ebp, ebp
xor eax, eax
mov dword [ebx], ebp
mov edi, 0x6b6e10
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6b6e10
mov ecx, ebx
call fcn.0049d9d0
mov ecx, dword [esp + 0x1c]
cmp ecx, ebp
je 0x466516
mov eax, dword [ecx - 4]
lea ebp, [ecx - 4]
lea esi, [ecx + eax*4]
dec eax
js 0x46650b
lea edi, [eax + 1]
sub esi, 4
mov ecx, esi
call fcn.004039f0
dec edi
mov dword [esi], 0
jne 0x4664f8
push ebp
call fcn.004a1190
add esp, 4
xor ebp, ebp
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x4c]
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
and edx, 1
cmp eax, ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edx
je 0x466584
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
mov esi, eax
jae 0x466584
push eax
call edi
and eax, 0xff
cmp eax, 0x7f
jne 0x466573
mov eax, dword [esi]
and eax, 0xff
cmp eax, 0x80
jae 0x46656e
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x466573
mov eax, 0xff
cmp eax, ebp
jne 0x466584
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.00499410
add esp, 4
mov eax, dword [esp + 0x48]
cmp eax, ebp
mov dword [esp + 0x4c], ebp
je 0x4665e1
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
mov esi, eax
jae 0x4665e1
push eax
call edi
and eax, 0xff
cmp eax, 0x7f
jne 0x4665d0
mov eax, dword [esi]
and eax, 0xff
cmp eax, 0x80
jae 0x4665cb
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x4665d0
mov eax, 0xff
cmp eax, ebp
jne 0x4665e1
mov ecx, dword [esp + 0x48]
push ecx
call fcn.00499410
add esp, 4
mov eax, dword [esp + 0x44]
cmp eax, ebp
mov dword [esp + 0x48], ebp
je 0x46663e
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
mov esi, eax
jae 0x46663e
push eax
call edi
and eax, 0xff
cmp eax, 0x7f
jne 0x46662d
mov eax, dword [esi]
and eax, 0xff
cmp eax, 0x80
jae 0x466628
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x46662d
mov eax, 0xff
cmp eax, ebp
jne 0x46663e
mov ecx, dword [esp + 0x44]
push ecx
call fcn.00499410
add esp, 4
mov eax, dword [esp + 0x40]
cmp eax, ebp
mov dword [esp + 0x44], ebp
je 0x46669b
mov edx, dword [eax]
and edx, 0xff
cmp edx, 0x80
mov esi, eax
jae 0x46669b
push eax
call edi
and eax, 0xff
cmp eax, 0x7f
jne 0x46668a
mov eax, dword [esi]
and eax, 0xff
cmp eax, 0x80
jae 0x466685
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
jmp 0x46668a
mov eax, 0xff
cmp eax, ebp
jne 0x46669b
mov ecx, dword [esp + 0x40]
push ecx
call fcn.00499410
add esp, 4
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x164
ret