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

Disassembly:
sub esp, 0x24
mov edx, dword [0x4c1ad8]
mov eax, dword [esp + 0x28]
push ebx
mov ebx, dword [esp + 0x74]
mov ecx, dword [eax + 8]
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push esi
push edi
mov edi, ebx
mov esi, ebx
mov dword [esp + 0x24], 1
shl edx, 4
shr edi, 0x10
and esi, 0xffff
push edx
push 0x40
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], ecx
call ebp
mov dword [esp + 0x80], eax
mov eax, dword [0x4c1ad8]
shl eax, 4
push eax
push 0x40
call ebp
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x60]
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x10], eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x74]
sub eax, ebp
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x78]
sub eax, ebp
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x7c]
sub eax, ebp
cmp edx, ecx
mov dword [esp + 0x20], eax
je 0x45db0f
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x74]
cmp ecx, eax
jne 0x45d723
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x78]
cmp edx, eax
jne 0x45d723
cmp ebp, dword [esp + 0x7c]
je 0x45db0f
mov eax, dword [esp + 0x38]
xor ebx, ebx
cmp dword [eax], ebx
jne 0x45d743
push 0x4c1fa4
call fcn.00491850
add esp, 4
mov dword [esp + 0x24], ebx
jmp 0x45dae4
mov edx, dword [esp + 0x5c]
cmp edx, ebx
jne 0x45d757
mov dword [esp + 0x5c], 0x4c1adc
mov edx, dword [esp + 0x5c]
cmp esi, 0xd
je 0x45d761
cmp esi, 0xb
jne 0x45d775
cmp edi, ebx
je 0x45dae4
cmp edi, 0x100
jne 0x45d775
mov dword [esp + 0x14], ebx
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x48]
cmp ebp, ebx
mov esi, ebp
jl 0x45d785
mov esi, ebx
mov ecx, dword [esp + 0x50]
cmp esi, ecx
jl 0x45d78f
mov esi, ecx
mov eax, dword [esp + 0x58]
cmp esi, eax
jl 0x45d799
mov esi, eax
cmp ebp, ebx
mov edi, ebp
jg 0x45d7a1
mov edi, ebx
cmp edi, ecx
jg 0x45d7a7
mov edi, ecx
cmp edi, eax
jg 0x45d7ad
mov edi, eax
mov eax, dword [edx + 4]
cmp esi, eax
jg 0x45d7b6
mov esi, eax
mov eax, dword [edx + 0xc]
dec eax
cmp edi, eax
jl 0x45d7c0
mov edi, eax
cmp esi, edi
jg 0x45d7f3
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x80]
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 0x45d7d6
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0x40]
push ecx
sub ebx, esi
push edx
mov edx, dword [esp + 0x50]
sub ebp, esi
push ebx
push edx
push ebp
push eax
call fcn.00412d50
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0x7c]
sub eax, esi
push edx
mov edx, dword [esp + 0x78]
push ecx
mov dword [esp + 0x80], eax
push eax
mov eax, dword [esp + 0x70]
push edx
push ebx
push eax
call fcn.00412d50
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x88]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x88]
sub ebx, esi
push edx
mov edx, dword [esp + 0x98]
push eax
mov eax, dword [esp + 0x98]
push ebx
push ecx
push edx
push eax
call fcn.00412d50
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0xd4]
mov eax, dword [esp + 0xb0]
add esp, 0x54
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x54]
push eax
push ebp
push ecx
push ebx
push edx
call fcn.00412d50
mov eax, dword [esp + 0x44]
mov ecx, esi
mov edx, dword [esp + 0x54]
imul ecx, eax
mov edx, dword [edx]
add esp, 0x1c
cmp esi, edi
lea ecx, [edx + ecx*2]
mov dword [esp + 0x38], ecx
jg 0x45dae4
mov ebx, dword [esp + 0x60]
lea edx, [eax + eax]
mov eax, esi
sub edi, esi
sub eax, ebx
mov ebx, dword [esp + 0x80]
mov ecx, eax
mov ebp, eax
imul eax, dword [esp + 0x70]
imul ecx, dword [esp + 0x20]
imul ebp, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x10]
sub eax, ebx
inc edi
mov dword [esp + 0x44], edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x54]
cdq
idiv esi
mov ecx, dword [esp + 0x68]
push ecx
add eax, ecx
push eax
call fcn.00493c40
mov edi, eax
mov eax, ebp
cdq
idiv esi
mov ecx, dword [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x78]
push ecx
add eax, ecx
push eax
call fcn.00493c40
mov edx, dword [esp + 0x94]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x64]
push edx
cdq
idiv esi
mov ecx, dword [esp + 0x88]
push ecx
add eax, ecx
push eax
call fcn.00493c40
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0x3c]
add esp, 0x24
cmp ecx, 0xb
jne 0x45d9ae
mov ecx, eax
imul edx, esi
imul ecx, esi
sar ecx, 8
sar edx, 8
mov cx, word [ecx*2 + 0x66ef78]
or cx, word [edx*2 + 0x66f578]
mov edx, edi
imul edx, esi
sar edx, 8
or cx, word [edx*2 + 0x4dce30]
jmp 0x45d9c6
mov cx, word [eax*2 + 0x66ef78]
or cx, word [edx*2 + 0x66f578]
or cx, word [edi*2 + 0x4dce30]
mov word [esp + 0x2e], cx
mov word [esp + 0x2c], cx
mov word [esp + 0x2a], cx
mov word [esp + 0x28], cx
mov ecx, dword [esp + 0x14]
dec ecx
cmp ecx, 0xa
ja case.0x45d9f0.5
xor edx, edx
mov dl, byte [ecx + 0x45db74]
jmp dword [edx*4 + 0x45db60]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x28]
push esi
push eax
mov eax, dword [esp + 0x40]
add edx, ebx
push ecx
push edx
push ebx
push eax
call fcn.0045c4e0
add esp, 0x18
jmp 0x45daa2
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x5c]
lea edx, [esp + 0x2c]
add ecx, ebx
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
push ebx
push edx
call fcn.0045c580
add esp, 0x18
jmp 0x45daa2
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x28]
add edx, ebx
push eax
mov eax, dword [esp + 0x3c]
push ecx
push edx
push ebx
push eax
call fcn.0045c640
jmp 0x45da9f
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x40]
push edi
add eax, ebx
push edx
push eax
push ebx
push ecx
call fcn.0045c730
add esp, 0x1c
jmp 0x45daa2
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x28]
add ecx, ebx
push edx
mov edx, dword [esp + 0x3c]
push eax
push ecx
push ebx
push edx
call fcn.0045c460
add esp, 0x14
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
add ecx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x20]
add ebp, edi
add esi, ecx
mov ecx, dword [esp + 0x38]
add ebx, 0x10
add ecx, edx
dec eax
mov dword [esp + 0x4c], esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x48], eax
jne 0x45d90e
mov eax, dword [esp + 0x80]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalFree]
test eax, eax
je 0x45daf8
push eax
call esi
mov eax, dword [esp + 0x10]
test eax, eax
je 0x45db03
push eax
call esi
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x5c]
push ebx
push ebp
push eax
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push eax
push ecx
push edx
call fcn.0045cce0
add esp, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret