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

Disassembly:
sub esp, 0x5b4
mov eax, dword [0x4c3014]
xor eax, esp
mov dword [esp + 0x5ac], eax
mov eax, dword [esp + 0x5bc]
push ebx
mov ebx, dword [esp + 0x5c8]
push ebp
mov ebp, ecx
mov dword [esp + 0xc], eax
xor eax, eax
push esi
push edi
cmp dword [ebp + 0x14], eax
je 0x4658a6
mov eax, 0x40000
jmp 0x465ef3
cmp byte [ebp + 0x2c], al
je 0x4658b5
mov eax, 0x50000
jmp 0x465ef3
mov edi, eax
mov dword [esp + 0x18], eax
push 0xc
pop ecx
cmp dword [ebp], eax
je 0x4658cd
cmp ebx, 4
cmovne edi, ecx
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0x5c8]
lea edx, [esp + 0x3b0]
sub edx, ecx
movzx eax, word [ecx]
mov word [ecx + edx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x4658dd
mov ax, word [esp + 0x3b0]
test ax, ax
je 0x465eee
push 0x2f
lea ecx, [esp + 0x3b4]
movzx edx, ax
pop edi
cmp dx, 0x5c
jne 0x465913
mov word [ecx], di
add ecx, 2
movzx eax, word [ecx]
mov edx, eax
test ax, ax
jne 0x46590a
mov edi, dword [esp + 0x18]
cmp ebx, 4
jne 0x465958
lea ecx, [esp + 0x3b0]
xor esi, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x465935
sub ecx, edx
sar ecx, 1
push 0x2f
pop eax
cmp word [esp + ecx*2 + 0x3ae], ax
je 0x465958
mov byte [esp + 0x13], 1
jmp 0x46595e
xor eax, eax
mov byte [esp + 0x13], al
push 8
pop eax
mov esi, eax
mov dword [esp + 0x1c], esi
cmp ebx, 4
je 0x46597c
lea ecx, [esp + 0x3b0]
call fcn.00464d7a
test al, al
je 0x465984
xor eax, eax
mov esi, eax
mov dword [esp + 0x1c], esi
cmp ebx, 2
jne 0x465996
push dword [esp + 0x14]
mov ecx, ebp
call fcn.0046530d
jmp 0x4659d8
cmp ebx, 1
jne 0x4659af
push dword [esp + 0x5d0]
mov ecx, ebp
push dword [esp + 0x18]
call fcn.0046538e
jmp 0x4659d8
cmp ebx, 3
jne 0x4659c8
push dword [esp + 0x5d0]
mov ecx, ebp
push dword [esp + 0x18]
call fcn.004654d0
jmp 0x4659d8
cmp ebx, 4
jne 0x465eee
mov ecx, ebp
call fcn.004655b1
test eax, eax
jne 0x465ef3
xor ecx, ecx
lea eax, [esp + 0x168]
push ecx
push ecx
push 0x104
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x3c4]
mov dword [esp + 0x390], ecx
push eax
push ecx
push 0xfde9
mov byte [esp + 0x78], cl
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea ecx, [esp + 0x168]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x465a1c
sub ecx, edx
mov dword [esp + 0x38], ecx
cmp byte [esp + 0x13], al
je 0x465a50
lea edi, [esp + 0x168]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x465a37
mov ax, word [0x4b0308]
mov word [edi], ax
inc dword [esp + 0x38]
mov edi, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x370], 1
mov word [esp + 0x4a], ax
xor edx, edx
mov eax, 0xb17
mov byte [esp + 0x26c], dl
push 0x14
mov word [esp + 0x24], ax
pop eax
mov word [esp + 0x22], ax
mov eax, dword [ebp + 0x68]
push 8
mov dword [esp + 0x2c], eax
pop eax
mov dword [esp + 0x164], edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x378], edx
mov dword [esp + 0x2c], edx
mov word [esp + 0x24], ax
cmp dword [ebp], edx
je 0x465ab4
cmp ebx, 4
je 0x465ab4
push 9
pop eax
mov word [esp + 0x24], ax
mov ecx, dword [ebp + 0x70]
mov word [esp + 0x4c], ax
movzx eax, si
mov dword [esp + 0x14], eax
mov word [esp + 0x26], ax
test esi, esi
jne 0x465ad9
test ecx, ecx
js 0x465ad9
lea eax, [ecx + edi]
mov dword [esp + 0x30], eax
jmp 0x465add
mov dword [esp + 0x30], edx
xor eax, eax
mov ebx, dword [ebp + 0x58]
mov edx, dword [ebp + 0x5c]
lea esi, [esp + 0x384]
mov word [esp + 0x48], ax
lea edi, [esp + 0x3a4]
mov eax, dword [ebp + 0x4c]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x10]
add eax, dword [ebp + 0x18]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x384]
mov dword [esp + 0x15c], eax
lea eax, [esp + 0x3a4]
mov dword [esp + 0x160], eax
mov al, byte [ebp + 0x58]
mov byte [esp + 0x389], al
mov eax, edx
mov dword [esp + 0x34], ecx
mov ecx, ebx
shrd ecx, eax, 8
mov dword [esp + 0x384], 0xd5455
mov byte [esp + 0x38a], cl
mov ecx, ebx
shrd ecx, eax, 0x10
mov al, byte [ebp + 0x50]
mov byte [esp + 0x38b], cl
shrd ebx, edx, 0x18
mov edx, dword [ebp + 0x54]
mov byte [esp + 0x38d], al
mov eax, edx
mov byte [esp + 0x38c], bl
mov ebx, dword [ebp + 0x50]
mov ecx, ebx
shrd ecx, eax, 8
mov byte [esp + 0x388], 7
mov byte [esp + 0x38e], cl
mov ecx, ebx
shrd ecx, eax, 0x10
mov al, byte [ebp + 0x60]
mov byte [esp + 0x38f], cl
shrd ebx, edx, 0x18
mov edx, dword [ebp + 0x64]
mov byte [esp + 0x390], bl
mov ebx, dword [ebp + 0x60]
mov ecx, ebx
mov byte [esp + 0x391], al
mov eax, edx
shrd ecx, eax, 8
push ebp
mov byte [esp + 0x396], cl
mov ecx, ebx
shrd ecx, eax, 0x10
shrd ebx, edx, 0x18
mov byte [esp + 0x397], cl
lea ecx, [esp + 0x24]
mov byte [esp + 0x398], bl
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x40], 0x11
mov dword [esp + 0x44], 9
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov byte [esp + 0x3aa], 5
call fcn.0046431d
pop ecx
test eax, eax
je 0x465c16
mov ecx, ebp
call fcn.00465717
mov eax, 0x400
jmp 0x465ef3
mov eax, dword [esp + 0x38]
xor ebx, ebx
add eax, 0x1e
add eax, dword [esp + 0x3c]
add dword [ebp + 0x18], eax
cmp dword [ebp + 0x14], ebx
je 0x465c3a
mov ecx, ebp
call fcn.00465717
mov eax, dword [ebp + 0x14]
jmp 0x465ef3
lea edi, [ebp + 0x30]
mov dword [ebp + 0x34], 0x23456789
mov dword [edi], 0x12345678
mov dword [ebp + 0x38], 0x34567890
mov esi, dword [ebp]
test esi, esi
je 0x465c6a
mov dl, byte [esi]
test dl, dl
je 0x465c6a
mov ecx, edi
call fcn.00464d12
add esi, 1
jne 0x465c58
cmp byte [0x4c6a29], bl
jne 0x465c89
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor esi, eax
push esi
call fcn.00484e00
pop ecx
mov esi, ebx
call fcn.00484ddf
sar eax, 7
mov byte [esp + esi + 0x398], al
inc esi
cmp esi, 0xc
jl 0x465c8b
mov eax, dword [esp + 0x28]
mov esi, ebx
shr eax, 8
mov byte [esp + 0x3a3], al
mov dl, byte [esp + esi + 0x398]
mov ecx, edi
call fcn.00464d59
mov byte [esp + esi + 0x398], al
inc esi
cmp esi, 0xc
jl 0x465cb0
mov eax, dword [ebp]
test eax, eax
je 0x465cf4
cmp dword [esp + 0x5d4], 4
je 0x465cf4
push 0xc
lea eax, [esp + 0x39c]
mov ecx, ebp
push eax
call fcn.00465188
add dword [ebp + 0x18], 0xc
mov eax, dword [ebp]
mov esi, ebx
test eax, eax
je 0x465d09
cmp dword [esp + 0x5d4], 4
je 0x465d09
xor eax, eax
inc eax
jmp 0x465d0b
mov al, bl
cmp dword [esp + 0x5d4], 4
mov edi, dword [esp + 0x1c]
mov byte [ebp + 0x2d], al
je 0x465d81
push 8
pop eax
cmp edi, eax
jne 0x465d33
lea eax, [esp + 0x20]
mov ecx, ebp
push eax
call fcn.00465758
mov esi, eax
jmp 0x465d87
test edi, edi
jne 0x465d87
jmp 0x465d53
cmp esi, 0xffffffff
je 0x465d6c
push esi
lea eax, [ebp + 0x94]
mov ecx, ebp
push eax
call fcn.00465188
cmp eax, esi
jne 0x465d78
add ebx, esi
push 0x4000
lea eax, [ebp + 0x94]
mov ecx, ebp
push eax
call fcn.0046567e
mov esi, eax
test esi, esi
jne 0x465d39
mov dword [ebp + 0x90], ebx
xor ebx, ebx
mov esi, ebx
jmp 0x465d87
mov esi, 0x60000
xor ebx, ebx
jmp 0x465d87
mov dword [ebp + 0x90], ebx
mov ecx, ebp
mov byte [ebp + 0x2d], bl
call fcn.00465717
mov ecx, dword [ebp + 0x90]
add dword [ebp + 0x18], ecx
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x465ef3
test esi, esi
jne 0x465c0c
add ecx, dword [esp + 0x18]
cmp dword [esp + 0x30], ecx
mov eax, dword [ebp + 0x78]
sete dl
mov dword [esp + 0x2c], eax
cmp byte [ebp + 0x1c], 0
mov eax, dword [ebp + 0x70]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
je 0x465e41
cmp dword [ebp], ebx
je 0x465ddf
cmp dword [esp + 0x5d4], 4
jne 0x465e41
mov eax, dword [esp + 0x14]
mov word [esp + 0x26], ax
mov ax, word [esp + 0x24]
test al, 1
jne 0x465dfe
mov ecx, 0xfff7
and ax, cx
mov word [esp + 0x24], ax
mov word [esp + 0x4c], ax
mov ecx, ebp
mov eax, dword [esp + 0x54]
sub eax, dword [ebp + 0x10]
push eax
call fcn.00465254
test al, al
je 0x465e37
push ebp
lea ecx, [esp + 0x24]
call fcn.0046431d
pop ecx
test eax, eax
jne 0x465c0c
push dword [ebp + 0x18]
mov ecx, ebp
call fcn.00465254
test al, al
jne 0x465e7d
mov eax, 0x2000000
jmp 0x465ef3
mov eax, dword [esp + 0x14]
cmp word [esp + 0x26], ax
jne 0x465ee7
test edi, edi
jne 0x465e5c
test dl, dl
je 0x465ee7
push ebp
lea ecx, [esp + 0x24]
call fcn.0046459c
pop ecx
test eax, eax
jne 0x465c0c
mov ax, word [esp + 0x4c]
add dword [ebp + 0x18], 0x10
mov word [esp + 0x24], ax
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x465ef3
push dword [esp + 0x40]
call fcn.0047c771
pop ecx
push dword [esp + 0x40]
mov esi, eax
push dword [esp + 0x164]
push esi
call fcn.0047e230
add esp, 0xc
mov dword [esp + 0x160], esi
push 0x360
call fcn.0047c733
pop ecx
mov edx, eax
lea esi, [esp + 0x20]
mov ecx, 0xd8
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x44]
test ecx, ecx
jne 0x465ed3
mov dword [ebp + 0x44], edx
jmp 0x465ee3
mov ecx, eax
mov eax, dword [ecx + 0x35c]
test eax, eax
jne 0x465ed1
mov dword [ecx + 0x35c], edx
xor eax, eax
jmp 0x465ef3
mov eax, 0x4000000
jmp 0x465ef3
mov eax, 0x10000
mov ecx, dword [esp + 0x5bc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0047c71d
add esp, 0x5b4
ret 0x10