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

Disassembly:
sub esp, 0x28
mov eax, dword [0x4b77c0]
xor eax, esp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
mov edx, dword [eax]
push ebx
mov ebx, dword [esp + 0x34]
push ebp
push esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], edx
call fcn.0042bfd0
mov ebp, eax
test ebp, ebp
jne 0x4594df
pop esi
lea eax, [ebp + 2]
pop ebp
pop ebx
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.0046be7b
add esp, 0x28
ret
push edi
push 0x200
push 0
push ebx
call fcn.0046bf90
mov edi, dword [sym.imp.KERNEL32.dll_VirtualLock]
add esp, 0xc
push 0x1ac
push 0x4e0280
call edi
push 0x100
push 0x4e0430
call edi
test esi, esi
jne 0x459574
mov edi, dword [esp + 0x48]
cmp edi, 2
jl 0x459539
cmp edi, 5
jg 0x459539
mov eax, dword [esp + 0x44]
push eax
call fcn.0042ca60
add esp, 4
add eax, 0x20
mov byte [0], 0
jmp 0x459548
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0042ca60
add esp, 4
add eax, eax
push 1
push eax
push 0x4e032c
call fcn.00450550
add esp, 0xc
test eax, eax
jne 0x459584
pop edi
pop esi
pop ebp
mov eax, 0x12
pop ebx
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.0046be7b
add esp, 0x28
ret
mov ecx, 0x40
mov edi, 0x4e032c
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push esi
add edx, 4
push edx
push 0x4e0288
call fcn.0046dd00
mov eax, dword [esp + 0x48]
mov dword [0x4e0284], esi
mov esi, dword [esp + 0x5c]
push eax
push esi
call fcn.0044f020
mov ecx, dword [esp + 0x58]
xor edx, edx
cmp dword [esp + 0x9c], edx
mov dword [0x4e0280], eax
sete dl
mov dword [ebp], ecx
mov dword [ebp + 4], edi
push edx
push 0x40
push 0x4e02ec
call fcn.00450550
add esp, 0x20
test eax, eax
je 0x45955c
lea eax, [esi - 1]
cmp eax, 3
ja case.default.0x4595ef
jmp dword [eax*4 + 0x459d24]
call fcn.0042e1f0
mov ecx, dword [0x4e0284]
push eax
mov eax, dword [0x4e0280]
push 0x4e0430
push eax
push 0x40
push 0x4e02ec
push ecx
push 0x4e0288
call fcn.0044df10
add esp, 0x1c
jmp 0x4596b9
call fcn.0042e1f0
mov edx, dword [0x4e0280]
push eax
mov eax, dword [0x4e0284]
push 0x4e0430
push edx
push 0x40
push 0x4e02ec
push eax
push 0x4e0288
call fcn.0044e4b0
add esp, 0x1c
jmp 0x4596b9
call fcn.0042e1f0
mov ecx, dword [0x4e0280]
mov edx, dword [0x4e0284]
push eax
push 0x4e0430
push ecx
push 0x40
push 0x4e02ec
push edx
push 0x4e0288
call fcn.0044e950
add esp, 0x1c
jmp 0x4596b9
call fcn.0042e1f0
mov ecx, dword [0x4e0284]
push eax
mov eax, dword [0x4e0280]
push 0x4e0430
push eax
push 0x40
push 0x4e02ec
push ecx
push 0x4e0288
call fcn.0044eef0
add esp, 0x1c
jmp 0x4596b9
mov byte [0], 0
mov eax, dword [esp + 0x48]
mov ecx, 0x10
mov esi, 0x4e02ec
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov byte [ebx + 0x40], 0x54
lea esi, [ebx + 0x40]
mov byte [esi + 1], 0x52
mov dword [esp + 0x10], esi
inc esi
inc esi
mov byte [esi], 0x55
inc esi
mov byte [esi], 0x45
inc esi
mov byte [esi], 0
inc esi
mov byte [esi], 5
add eax, 0xfffffffe
inc esi
mov edx, 5
mov word [ebp + 0x29a4], dx
cmp eax, 3
ja case.default.0x459700
jmp dword [eax*4 + 0x459d34]
mov byte [esi], 4
inc esi
mov byte [esi], 0x10
jmp 0x45977c
mov byte [esi], 3
inc esi
mov byte [esi], 0
jmp 0x45977c
mov ecx, dword [esp + 0x68]
test ecx, ecx
ja 0x459728
cmp dword [esp + 0x64], 0
jbe 0x45972f
mov eax, 0x300
jmp 0x459734
mov eax, 0x100
sar eax, 8
mov byte [esi], al
inc esi
test ecx, ecx
ja 0x459745
cmp dword [esp + 0x64], 0
jbe 0x45974c
mov eax, 0x300
jmp 0x45977a
mov eax, 0x100
jmp 0x45977a
mov ax, word [esp + 0x7c]
movzx edi, ax
test ax, ax
jne 0x459765
mov edi, 0x700
mov ecx, edi
sar ecx, 8
mov byte [esi], cl
inc esi
test ax, ax
movzx eax, ax
jne 0x45977a
mov eax, 0x700
mov byte [esi], al
push 0x100
push 0x4e032c
inc esi
call fcn.0042bac0
inc esi
mov edx, eax
sar edx, 0x18
mov byte [esi - 1], dl
inc esi
mov ecx, eax
sar ecx, 0x10
mov byte [esi - 1], cl
mov ecx, dword [esp + 0x70]
inc esi
mov edx, eax
sar edx, 8
mov byte [esi - 1], dl
mov byte [esi], al
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x4414], ecx
movzx edx, byte [ebp + 0x4417]
mov dword [ebp + 0x4410], eax
mov byte [esi + 0x11], dl
movzx eax, byte [ebp + 0x4416]
add esi, 0x11
mov byte [esi + 1], al
movzx ecx, byte [ebp + 0x4415]
inc esi
mov byte [esi + 1], cl
movzx edx, byte [ebp + 0x4414]
inc esi
mov byte [esi + 1], dl
movzx eax, byte [ebp + 0x4413]
inc esi
mov byte [esi + 1], al
movzx ecx, byte [ebp + 0x4412]
inc esi
mov byte [esi + 1], cl
movzx edx, byte [ebp + 0x4411]
inc esi
inc esi
mov byte [esi], dl
movzx eax, byte [ebp + 0x4410]
inc esi
mov byte [esi], al
mov ecx, dword [ebp + 0x4410]
add esp, 8
inc esi
or ecx, dword [ebp + 0x4414]
je 0x45982e
mov eax, 1
jmp 0x459830
xor eax, eax
mov ecx, dword [esp + 0x5c]
mov dword [ebp + 0x29a0], eax
mov eax, dword [esp + 0x60]
mov dword [ebp + 0x444c], eax
mov dword [ebp + 0x4448], ecx
inc esi
mov edx, eax
shr edx, 0x18
mov byte [esi - 1], dl
inc esi
mov edx, eax
shr edx, 0x10
mov byte [esi - 1], dl
inc esi
mov edx, eax
shr edx, 8
mov byte [esi - 1], dl
mov edx, eax
mov byte [esi], dl
inc esi
mov edi, eax
mov edx, ecx
shrd edx, edi, 0x18
mov byte [esi], dl
shr edi, 0x18
inc esi
mov edi, eax
mov edx, ecx
shrd edx, edi, 0x10
mov byte [esi], dl
inc esi
mov edx, ecx
shrd edx, eax, 8
mov byte [esi], dl
mov byte [esi + 1], cl
mov ecx, dword [esp + 0x6c]
inc esi
shr eax, 8
mov eax, dword [esp + 0x70]
inc esi
mov dword [ebp + 0x4454], eax
mov dword [ebp + 0x4450], ecx
mov edx, eax
shr edx, 0x18
mov byte [esi], dl
inc esi
mov edx, eax
shr edx, 0x10
mov byte [esi], dl
inc esi
mov edx, eax
shr edx, 8
mov byte [esi], dl
inc esi
shr edi, 0x10
mov edx, eax
mov byte [esi], dl
mov edi, eax
mov edx, ecx
shrd edx, edi, 0x18
mov byte [esi + 1], dl
inc esi
shr edi, 0x18
mov edi, eax
mov edx, ecx
shrd edx, edi, 0x10
mov byte [esi + 1], dl
inc esi
mov edx, ecx
shrd edx, eax, 8
inc esi
mov byte [esi], dl
inc esi
mov byte [esi], cl
mov ecx, dword [esp + 0x74]
shr eax, 8
mov eax, dword [esp + 0x78]
shr edi, 0x10
inc esi
mov dword [ebp + 0x4458], ecx
mov dword [ebp + 0x445c], eax
inc esi
mov edx, eax
shr edx, 0x18
mov byte [esi - 1], dl
inc esi
mov edx, eax
shr edx, 0x10
mov byte [esi - 1], dl
inc esi
mov edx, eax
shr edx, 8
mov byte [esi - 1], dl
mov edx, eax
mov byte [esi], dl
inc esi
mov edx, ecx
mov edi, eax
shrd edx, edi, 0x18
mov byte [esi], dl
shr edi, 0x18
mov edx, ecx
inc esi
mov edi, eax
shrd edx, edi, 0x10
mov byte [esi], dl
mov edx, ecx
shrd edx, eax, 8
mov byte [esi + 1], dl
inc esi
mov byte [esi + 1], cl
inc esi
shr eax, 8
mov eax, dword [esp + 0x80]
inc esi
mov dword [ebp + 0x4460], eax
mov ecx, eax
shr ecx, 0x18
mov byte [esi], cl
inc esi
mov edx, eax
shr edx, 0x10
mov byte [esi], dl
inc esi
mov ecx, eax
shr ecx, 8
mov byte [esi], cl
inc esi
mov byte [esi], al
mov eax, dword [esp + 0x84]
lea edx, [eax - 0x200]
shr edi, 0x10
inc esi
cmp edx, 0xe00
ja 0x459999
test eax, 0x1ff
je 0x4599a0
mov byte [0], 0
mov dword [ebp + 0x4440], eax
mov ecx, eax
shr ecx, 0x18
mov byte [esi], cl
mov edx, eax
shr edx, 0x10
mov byte [esi + 1], dl
mov edx, dword [esp + 0x10]
inc esi
mov ecx, eax
inc esi
shr ecx, 8
push 0xbc
mov byte [esi], cl
push edx
mov byte [esi + 1], al
call fcn.0042bac0
mov edx, eax
sar edx, 0x18
mov byte [ebx + 0xfc], dl
lea ecx, [ebx + 0xfc]
inc ecx
mov edx, eax
sar edx, 0x10
mov byte [ecx], dl
inc ecx
mov edx, eax
sar edx, 8
mov byte [ecx], dl
mov byte [ecx + 1], al
add esp, 8
cmp dword [esp + 0x48], 2
lea edi, [ebx + 0x100]
mov ecx, 0x40
mov esi, 0x4e032c
rep movsd dword es:[edi], dword [esi]
jl 0x459a32
cmp dword [esp + 0x48], 5
jg 0x459a32
lea ebx, [ebp + 0x42a8]
mov ecx, 8
mov esi, 0x4e0430
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, 0x20
jmp 0x459a62
mov eax, dword [ebp]
push eax
lea ebx, [ebp + 0x42a8]
call fcn.0042ca60
mov ecx, dword [ebp]
add esp, 4
push eax
push ecx
call fcn.0042ca60
add esp, 4
add eax, 0x4e0430
push eax
push ebx
call fcn.0046dd00
add esp, 0xc
xor esi, esi
mov edx, dword [ebp]
lea edi, [ebp + 8]
lea eax, [esi + 0x4e0430]
push edi
push eax
push edx
mov dword [esp + 0x24], eax
call fcn.0042c6d0
add esp, 0xc
test eax, eax
jne 0x459d11
push ebp
call fcn.0042c7b0
add esp, 4
test eax, eax
je 0x459b2a
mov eax, dword [esp + 0x10]
push ebp
push 0
push 0x1c0
push eax
call fcn.0042d700
mov ecx, dword [ebp]
lea eax, [esi + 0x4e032c]
push edi
push eax
push ecx
mov dword [esp + 0x3c], eax
call fcn.0042c6d0
add esp, 0x1c
test eax, eax
jne 0x459d11
mov eax, dword [ebp + 4]
add eax, 0xfffffffe
lea edi, [ebp + 0x41a8]
mov ecx, 0x40
mov esi, 0x4e032c
rep movsd dword es:[edi], dword [esi]
cmp eax, 3
ja 0x459af5
mov ecx, 8
mov esi, 0x4e032c
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
jmp 0x459b1d
mov edx, dword [ebp]
push edx
call fcn.0042ca60
add esp, 4
push eax
mov eax, dword [ebp]
push eax
call fcn.0042ca60
add esp, 4
add eax, 0x4e032c
push eax
push ebx
call fcn.0046dd00
add esp, 0xc
push ebp
call fcn.0042c7b0
add esp, 4
test eax, eax
jne 0x459b42
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.0046be7b
add esp, 0x28
ret
cmp dword [0x4b2160], 0
je 0x459cbc
mov ecx, dword [0x4b9404]
test ecx, ecx
jne 0x459cbc
mov edx, dword [esp + 0x44]
push edx
mov dword [esp + 0x18], ecx
call fcn.0042ca60
add esp, 4
cmp eax, 0x10
mov dword [esp + 0x10], eax
jle 0x459b87
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0x10
xor ebx, ebx
cmp dword [esp + 0x10], ebx
mov byte [0x4b92c0], 0
jle 0x459c03
jmp 0x459ba0
xor eax, eax
mov dword [esp + 0x25], eax
mov word [esp + 0x29], ax
mov byte [esp + 0x2b], al
mov eax, dword [esp + 0x20]
movzx ecx, byte [eax + ebx]
push ecx
lea edx, [esp + 0x28]
push str._02X
push edx
mov byte [esp + 0x30], 0
call fcn.0046beeb
lea eax, [esp + 0x30]
add esp, 0xc
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x459bd5
mov edi, 0x4b92c0
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x459be6
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
inc ebx
cmp ebx, dword [esp + 0x10]
rep movsb byte es:[edi], byte [esi]
jl 0x459ba0
mov byte [0x4b8ec0], 0
xor ebx, ebx
lea esp, [esp]
mov eax, dword [esp + 0x18]
movzx ecx, byte [eax + ebx]
push ecx
lea edx, [esp + 0x30]
push str._02X
push edx
call fcn.0046beeb
lea eax, [esp + 0x38]
add esp, 0xc
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x459c31
mov edi, 0x4b8ec0
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x459c42
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
inc ebx
cmp ebx, 0x10
rep movsb byte es:[edi], byte [esi]
jl 0x459c10
cmp dword [esp + 0x14], 0
je 0x459c93
mov ecx, dword [0x4b94a8]
mov edx, dword [0x4b94ac]
xor eax, eax
cmp dword [0x4b2160], eax
sete al
push eax
push 0x4b92c0
push 0x4b8ec0
push ecx
push edx
call fcn.0040e550
add esp, 0x14
jmp 0x459cbc
mov eax, dword [0x4b94a8]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0x4b92c0
push 0
push 0xc
push eax
call esi
mov ecx, dword [0x4b94ac]
push 0x4b8ec0
push 0
push 0xc
push ecx
call esi
mov edx, 0x4e0430
mov ecx, 0x100
mov esi, ecx
mov eax, edx
lea ebx, [ebx]
mov byte [eax], 0
inc eax
sub esi, 1
jne 0x459cd0
lea esp, [esp]
dec ecx
mov byte [edx], 0
inc edx
test ecx, ecx
jne 0x459ce0
mov edx, 0x4e0280
mov ecx, 0x1ac
mov esi, ecx
mov eax, edx
mov byte [eax], 0
inc eax
sub esi, 1
jne 0x459cf7
dec ecx
mov byte [edx], 0
inc edx
test ecx, ecx
jne 0x459d00
mov edx, dword [esp + 0x1c]
mov dword [edx], ebp
xor eax, eax
mov ecx, dword [esp + 0x34]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0046be7b
add esp, 0x28
ret