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

Disassembly:
sub esp, 0x38
mov edx, dword [0x4c1ad8]
push ebx
mov ebx, dword [esp + 0x40]
push ebp
mov ebp, dword [esp + 0x8c]
push esi
mov eax, dword [ebx]
push edi
mov dword [esp + 0x94], eax
mov eax, dword [ebx + 4]
mov edi, ebp
mov esi, ebp
shl edx, 4
shr edi, 0x10
and esi, 0xffff
lea ecx, [eax + eax*2]
push edx
push 0x40
mov dword [esp + 0x2c], 1
mov dword [esp + 0x34], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x28], ecx
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [esp + 0x4c], eax
mov eax, dword [0x4c1ad8]
shl eax, 4
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x10], eax
mov eax, ecx
sub eax, edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x88]
sub eax, edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x8c]
sub eax, edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x90]
sub eax, edx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x74]
cmp eax, ecx
je 0x4639d8
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x88]
cmp ecx, eax
jne 0x463620
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x8c]
cmp eax, ecx
jne 0x463620
cmp edx, dword [esp + 0x90]
je 0x4639d8
cmp dword [ebx], 0
jne 0x46363f
push 0x4c1fa4
call fcn.00491850
add esp, 4
mov dword [esp + 0x24], 0
jmp 0x4639b0
mov edx, dword [esp + 0x70]
test edx, edx
jne 0x463653
mov dword [esp + 0x70], 0x4c1adc
mov edx, dword [esp + 0x70]
cmp esi, 0xd
je 0x46365d
cmp esi, 0xb
jne 0x463665
test edi, edi
je 0x4639b0
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x5c]
cmp ebp, ebx
mov esi, ebp
jl 0x463675
mov esi, ebx
mov ecx, dword [esp + 0x64]
cmp esi, ecx
jl 0x46367f
mov esi, ecx
mov eax, dword [esp + 0x6c]
cmp esi, eax
jl 0x463689
mov esi, eax
cmp ebp, ebx
mov edi, ebp
jg 0x463691
mov edi, ebx
cmp edi, ecx
jg 0x463697
mov edi, ecx
cmp edi, eax
jg 0x46369d
mov edi, eax
mov eax, dword [edx + 4]
cmp esi, eax
jg 0x4636a6
mov esi, eax
mov eax, dword [edx + 0xc]
dec eax
cmp edi, eax
jl 0x4636b0
mov edi, eax
cmp esi, edi
jg 0x4636e0
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x4c]
mov eax, edi
sub ebx, ecx
sub eax, esi
inc eax
mov edx, dword [0x4c1ad4]
mov dword [ebx + ecx], edx
mov dword [ecx], 0
add ecx, 0x10
dec eax
jne 0x4636c3
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x54]
push ecx
sub ebx, esi
push edx
mov edx, dword [esp + 0x64]
sub ebp, esi
push ebx
push edx
push ebp
push eax
call fcn.00412d50
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x90]
sub eax, esi
push edx
mov edx, dword [esp + 0x8c]
push ecx
mov dword [esp + 0x94], eax
push eax
mov eax, dword [esp + 0x84]
push edx
push ebx
push eax
call fcn.00412d50
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0x9c]
sub ebx, esi
push edx
mov edx, dword [esp + 0xac]
push eax
mov eax, dword [esp + 0xac]
push ebx
push ecx
push edx
push eax
call fcn.00412d50
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0xc4]
add esp, 0x54
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x68]
push eax
push ebp
push ecx
push ebx
push edx
call fcn.00412d50
mov eax, esi
mov ecx, dword [esp + 0xb0]
imul eax, dword [esp + 0x3c]
add esp, 0x1c
add ecx, eax
cmp esi, edi
mov dword [esp + 0x94], ecx
jg 0x4639b0
mov ebx, dword [esp + 0x74]
mov eax, esi
sub eax, ebx
mov ebx, dword [esp + 0x4c]
mov ecx, eax
mov ebp, eax
imul eax, dword [esp + 0x84]
imul ecx, dword [esp + 0x1c]
imul ebp, dword [esp + 0x18]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x10]
sub edi, esi
sub eax, ebx
inc edi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x64], edi
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x28]
cdq
idiv esi
mov ecx, dword [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x84]
push ecx
add eax, ecx
push eax
call fcn.00493c40
mov edx, dword [esp + 0x98]
mov byte [esp + 0x3c], al
mov eax, ebp
push edx
cdq
idiv esi
mov ecx, dword [esp + 0x8c]
push ecx
add eax, ecx
push eax
call fcn.00493c40
mov edi, dword [esp + 0x80]
mov byte [esp + 0x49], al
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x90]
push eax
mov eax, edi
cdq
idiv esi
push ecx
add eax, ecx
push eax
call fcn.00493c40
mov byte [esp + 0x56], al
add esp, 0x24
lea eax, [esp + 0x34]
mov esi, 7
mov cl, byte [esp + 0x30]
mov byte [eax - 1], cl
mov dl, byte [esp + 0x31]
mov byte [eax], dl
mov cl, byte [esp + 0x32]
mov byte [eax + 1], cl
add eax, 3
dec esi
jne 0x463877
mov edx, dword [esp + 0x14]
lea eax, [edx - 1]
cmp eax, 0xc
ja case.0x4638a9.6
xor ecx, ecx
mov cl, byte [eax + 0x463a40]
jmp dword [ecx*4 + 0x463a28]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x78]
lea eax, [esp + 0x34]
add edx, ebx
push eax
mov eax, dword [esp + 0x9c]
push ecx
push edx
push ebx
push eax
call fcn.00462210
add esp, 0x18
jmp case.0x4638a9.4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x78]
lea edx, [esp + 0x34]
add ecx, ebx
push edx
mov edx, dword [esp + 0x9c]
push eax
push ecx
push ebx
push edx
call fcn.00462440
add esp, 0x18
jmp case.0x4638a9.4
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
lea eax, [esp + 0x30]
add edx, ebx
push eax
mov eax, dword [esp + 0x98]
push ecx
push edx
push ebx
push eax
call fcn.004625c0
jmp 0x463966
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0x30]
add eax, ebx
push ecx
mov ecx, dword [esp + 0x98]
push edx
push eax
push ebx
push ecx
call fcn.00462700
jmp 0x463966
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
lea edx, [esp + 0x30]
add ecx, ebx
push edx
mov edx, dword [esp + 0x98]
push eax
push ecx
push ebx
push edx
call fcn.004620f0
add esp, 0x14
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x18]
add edx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x94]
add ebp, ecx
mov ecx, dword [esp + 0x20]
add edi, eax
mov eax, dword [esp + 0x64]
add ebx, 0x10
add edx, ecx
dec eax
mov dword [esp + 0x68], edi
mov dword [esp + 0x94], edx
mov dword [esp + 0x64], eax
jne 0x4637fb
mov eax, dword [esp + 0x4c]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalFree]
test eax, eax
je 0x4639c1
push eax
call esi
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4639cc
push eax
call esi
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x70]
push ebp
push edx
mov edx, dword [esp + 0x84]
push edx
mov edx, dword [esp + 0x78]
push eax
mov eax, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x78]
push eax
mov eax, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x78]
push eax
mov eax, dword [esp + 0x78]
push ecx
push edx
push eax
push ebx
call fcn.00462bd0
add esp, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret