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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x38
push esi
push eax
call fcn.0046bc30
mov esi, eax
add esp, 4
test esi, esi
jne 0x46e83c
pop esi
add esp, 0x38
ret
push ebx
xor ebx, ebx
cmp byte [esi + 0x88], bl
mov dword [esp + 8], ebx
je 0x46e87c
mov edx, dword [esi + 0x20]
test edx, edx
jle 0x46e87c
mov eax, dword [esi + 0x7c]
mov ecx, edx
cmp dword [eax], 0
je 0x46e85f
add ebx, 1
add eax, 4
sub ecx, 1
jne 0x46e857
test ebx, ebx
mov dword [esp + 8], ebx
je 0x46e87c
lea ecx, [ebx + ebx*2]
lea edx, [edx + ecx*8 + 0x44]
mov dword [esp + 0x14], edx
jmp 0x46e886
mov eax, dword [esi + 0x20]
add eax, 0x1c
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
push ebp
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebp, eax
test ebp, ebp
mov dword [esp + 0x40], ebp
jne 0x46e8a5
pop ebp
pop ebx
pop esi
add esp, 0x38
ret
cmp dword [esp + 0x50], 0
mov ecx, dword [esi + 0xc]
mov dword [ebp], ecx
mov edx, dword [esi]
mov dword [ebp + 4], edx
mov eax, dword [esi + 0x48]
mov dword [ebp + 0x10], eax
mov dword [ebp + 8], 0x1c
mov ecx, dword [esi + 0x18]
mov dword [ebp + 0x18], ecx
lea ecx, [ebp + 0x1c]
je 0x46e8e0
mov eax, dword [esi + 0x48]
sub eax, dword [esi + 0x6c]
mov dword [ebp + 0xc], eax
mov edx, dword [esi + 0x44]
add edx, dword [esi + 0x6c]
push eax
push edx
jmp 0x46e8ee
mov eax, dword [esi + 0x20]
mov dword [ebp + 0xc], eax
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x44]
push edx
push eax
push ecx
call fcn.0047eec0
add esp, 0xc
test ebx, ebx
je 0x46eaa7
push edi
mov edi, dword [esi + 0x20]
add edi, 0x1c
lea ecx, [edi + ebp + 0x10]
xor eax, eax
mov dword [ebp + 0x14], edi
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 0x20]
cmp ecx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
jle 0x46e952
mov ebx, dword [esi + 0x78]
mov edx, ebx
cmp dword [edx], 0
jne 0x46e938
add eax, 1
add edx, 4
cmp eax, ecx
jl 0x46e927
jmp 0x46e94e
lea edx, [esp + 0x24]
push edx
mov edx, dword [ebx + eax*4]
lea ecx, [esp + 0x24]
push ecx
push edx
call fcn.0046b750
add esp, 0xc
mov ebx, dword [esp + 0x10]
mov dword [edi + ebp], ebx
mov eax, dword [esi + 0x80]
mov dword [edi + ebp + 4], eax
mov ecx, dword [esi + 8]
mov dword [edi + ebp + 8], ecx
mov edx, dword [esi + 0x84]
lea ebx, [edi + ebp + 0xc]
xor eax, eax
mov dword [ebx], edx
cmp dword [esi + 0x20], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x2c], eax
jle 0x46eaa6
mov ecx, dword [esi + 0x7c]
mov ebp, dword [ecx + eax*4]
test ebp, ebp
je 0x46ea92
mov dx, word [ebp + 0x2c]
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x34]
push ecx
push ebp
mov word [edi], dx
call fcn.0046b750
mov eax, dword [esi + 0x80]
cdq
sub eax, edx
sar eax, 1
sub eax, dword [esp + 0x2c]
add esp, 0xc
add eax, dword [esp + 0x30]
imul eax, eax, 0x64
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fdiv dword [esi + 0x4c]
call fcn.0047edf0
mov ecx, eax
mov eax, dword [ebx]
sub eax, dword [esp + 0x24]
mov dword [esp + 0x3c], ecx
add eax, dword [esp + 0x34]
cdq
idiv dword [esi + 0x50]
test eax, eax
je 0x46ea6c
xor edx, edx
test eax, eax
mov dword [esp + 0x10], edx
jle 0x46ea67
mov ecx, dword [esi + 0x18]
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x28], eax
lea esp, [esp]
mov ebx, dword [esi + 0x18]
test ebx, ebx
jle 0x46ea54
mov edi, dword [esi + 0x78]
add edi, dword [esp + 0x14]
mov edi, edi
cmp dword [edi], 0
je 0x46ea40
mov edx, dword [edi]
push edx
call fcn.0046d1d0
add esp, 4
cmp eax, 2
jne 0x46ea3b
add dword [esp + 0x10], eax
jmp 0x46ea40
add dword [esp + 0x10], 1
add edi, 4
sub ebx, 1
jne 0x46ea20
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
add dword [esp + 0x14], ecx
sub dword [esp + 0x28], 1
jne 0x46ea10
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
imul edx, edx, 0x64
add ecx, edx
mov dword [edi + 4], ecx
mov eax, dword [ebp + 0xc]
mov dword [edi + 8], eax
mov ecx, dword [ebp + 0x10]
mov dword [edi + 0xc], ecx
mov edx, dword [ebp + 0x14]
mov dword [edi + 0x10], edx
mov eax, dword [ebp + 0x18]
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x2c]
add edi, 0x18
mov dword [esp + 0x18], edi
add eax, 1
cmp eax, dword [esi + 0x20]
mov dword [esp + 0x2c], eax
jl 0x46e985
mov ebp, dword [esp + 0x44]
pop edi
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x46eab5
mov ecx, dword [esp + 0x18]
mov dword [eax], ecx
mov eax, ebp
pop ebp
pop ebx
pop esi
add esp, 0x38
ret