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

Disassembly:
sub esp, 0x30
push ebp
mov ebp, dword [esp + 0x38]
cmp byte [ebp + 2], 1
je 0x10048698
mov eax, 0xfffffffc
pop ebp
add esp, 0x30
ret
mov ecx, dword [ebp + 8]
mov eax, ecx
and eax, 0x80000001
jns 0x100486a9
dec eax
or eax, 0xfffffffe
inc eax
jne 0x10049135
mov eax, dword [ebp + 0xc]
mov edx, eax
and edx, 0x80000001
jns 0x100486c1
dec edx
or edx, 0xfffffffe
inc edx
jne 0x10049135
push ebx
xor ebx, ebx
cmp ecx, ebx
jle 0x1004912c
cmp eax, ebx
jle 0x1004912c
push esi
push 0x40
push 0x248
call fcn.10052d60
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x100486fa
pop esi
lea eax, [ebx - 2]
pop ebx
pop ebp
add esp, 0x30
ret
push 0x248
push ebx
push esi
call fcn.100113d0
mov eax, dword [ebp + 4]
mov dword [esi + 0x24], eax
mov eax, dword [ebp + 0x28]
add esp, 0xc
mov dword [esi + 0x28], eax
test al, 1
je 0x1004871f
or eax, 0x20
mov dword [esi + 0x28], eax
mov ecx, dword [ebp + 8]
mov dword [esi], ecx
mov edx, dword [ebp + 0xc]
mov eax, ecx
add eax, 0xf
shr eax, 4
mov ecx, edx
add ecx, 0xf
shr ecx, 4
mov dword [esi + 0x14], ecx
add ecx, 8
mov dword [esi + 0x10], eax
add eax, 8
shl ecx, 4
shl eax, 4
mov dword [esi + 0xc], ecx
mov dword [esi + 4], edx
xor ecx, ecx
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x2c]
cmp eax, ebx
setle cl
mov edx, 0x19
dec ecx
and ecx, eax
mov dword [esi + 0x1c], ecx
cmp dword [ebp + 0x2c], ebx
jle 0x1004876f
mov edx, dword [ebp + 0x30]
cmp ecx, ebx
lea eax, [esi + 0x20]
push edi
mov dword [eax], edx
jle 0x10048781
lea edi, [esi + 0x1c]
call fcn.100485d0
mov eax, dword [ebp + 0x10]
cmp eax, ebx
jle 0x100487c3
mov dword [esi + 0x88], eax
shl eax, 4
push 0x40
push eax
call fcn.10052d60
add esp, 8
mov dword [esi + 0x8c], eax
cmp eax, ebx
je 0x100490c8
mov ecx, dword [esi + 0x88]
mov edx, dword [ebp + 0x14]
shl ecx, 4
push ecx
push edx
push eax
call fcn.100119c0
add esp, 0xc
jmp 0x100487cf
mov dword [esi + 0x88], ebx
mov dword [esi + 0x8c], ebx
mov ebp, dword [ebp + 0x18]
cmp ebp, ebx
jle 0x100487fe
lea eax, [ebp*8]
push 0x40
push eax
mov dword [esi + 0x90], ebp
call fcn.10052d60
add esp, 8
mov dword [esi + 0x94], eax
cmp eax, ebx
je 0x100490c8
jmp 0x1004880a
mov dword [esi + 0x90], ebx
mov dword [esi + 0x94], ebx
mov edi, dword [esp + 0x44]
xor ebp, ebp
cmp dword [esi + 0x90], ebx
jle 0x10048910
lea esp, [esp]
mov ecx, dword [edi + 0x1c]
push ebx
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], 0x10103
mov eax, dword [ecx + ebp*8]
push 4
push ebx
call eax
add esp, 0x10
test eax, eax
jl 0x1004884f
mov ecx, dword [esp + 0x14]
or dword [esi + 0x18], ecx
mov edx, dword [esi + 0x88]
mov ecx, dword [esi]
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x8c]
mov dword [esp + 0x1c], edx
mov edx, dword [esi + 4]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x24], ecx
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x28], edx
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x30], ecx
mov ecx, dword [edi + 0x1c]
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x94]
mov dword [esp + 0x18], 0x10103
mov edx, dword [ecx + ebp*8 + 4]
mov dword [esp + 0x3c], edx
mov dword [eax + ebp*8], ebx
mov edx, dword [esi + 0x94]
mov ecx, dword [edi + 0x1c]
lea eax, [edx + ebp*8 + 4]
push eax
mov eax, dword [ecx + ebp*8]
lea edx, [esp + 0x1c]
push edx
push 1
push ebx
call eax
add esp, 0x10
test eax, eax
jl 0x10048903
mov ecx, dword [edi + 0x1c]
mov edx, dword [esi + 0x94]
mov eax, dword [ecx + ebp*8]
mov dword [edx + ebp*8], eax
inc ebp
cmp ebp, dword [esi + 0x90]
jl 0x10048820
test byte [esi + 0x28], 4
jne 0x1004891c
test byte [esi + 0x18], 2
je 0x10048920
or dword [esi + 0x18], 1
test byte [esi + 0x18], 4
je 0x1004894a
mov ecx, dword [esi + 0x14]
imul ecx, dword [esi + 0x10]
add ecx, ecx
add ecx, ecx
push 0x40
push ecx
call fcn.10052d60
add esp, 8
mov dword [esi + 0x98], eax
cmp eax, ebx
je 0x100490b3
mov eax, dword [edi + 0x24]
xor edx, edx
cmp eax, ebx
setle dl
xor ecx, ecx
dec edx
and eax, edx
mov dword [esi + 0x60], eax
mov eax, dword [edi + 0x3c]
cmp eax, ebx
setle cl
dec ecx
and eax, ecx
mov dword [esi + 0x2c], eax
mov edx, dword [edi + 0x40]
mov dword [esi + 0x30], edx
mov eax, dword [edi + 0x44]
cmp eax, ebx
jg 0x1004897c
mov eax, 2
mov dword [esi + 0x38], eax
mov eax, dword [edi + 0x50]
cmp eax, ebx
jg 0x1004898b
mov eax, 0x1f
mov dword [esi + 0x44], eax
mov eax, dword [edi + 0x48]
cmp eax, ebx
jg 0x1004899a
mov eax, 2
mov dword [esi + 0x3c], eax
mov eax, dword [edi + 0x54]
cmp eax, ebx
jg 0x100489a9
mov eax, 0x1f
mov dword [esi + 0x48], eax
mov eax, dword [edi + 0x4c]
cmp eax, ebx
jg 0x100489b8
mov eax, 2
mov dword [esi + 0x40], eax
mov eax, dword [edi + 0x58]
cmp eax, ebx
jg 0x100489c7
mov eax, 0x1f
mov dword [esi + 0x4c], eax
mov eax, dword [edi + 0x38]
xor ecx, ecx
cmp eax, ebx
setle cl
dec ecx
and eax, ecx
mov dword [esi + 0x34], eax
mov eax, dword [edi + 0x34]
cmp eax, ebx
jg 0x100489ed
mov eax, dword [esi + 0x20]
lea eax, [eax + eax*4]
add eax, eax
cdq
idiv dword [esi + 0x1c]
push 0x40
push 0x140
mov dword [esi + 0x5c], eax
call fcn.10052d60
push 0x40
push 0x140
mov dword [esi + 0x9c], eax
call fcn.10052d60
add esp, 0x10
mov dword [esi + 0xa0], eax
cmp dword [esi + 0x9c], ebx
je 0x10049098
cmp eax, ebx
je 0x10049098
mov edx, dword [esi + 0x14]
imul edx, dword [esi + 0x10]
imul edx, edx, 0x1b4
push 0x40
push edx
call fcn.10052d60
mov ecx, dword [esi + 0x9c]
mov dword [ecx + 0x44], eax
mov edx, dword [esi + 0x14]
imul edx, dword [esi + 0x10]
imul edx, edx, 0x1b4
push 0x40
push edx
call fcn.10052d60
mov ecx, dword [esi + 0xa0]
mov dword [ecx + 0x44], eax
mov edx, dword [esi + 0x9c]
add esp, 0x10
cmp dword [edx + 0x44], ebx
je 0x10049077
mov eax, dword [esi + 0xa0]
cmp dword [eax + 0x44], ebx
je 0x10049077
push 0x40
push 0x400
call fcn.10052d60
add esp, 8
mov dword [esi + 0x78], eax
cmp eax, ebx
je 0x1004906b
test byte [esi + 0x18], 1
je 0x10048acc
mov dword [esi + 0xac], ebx
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xa4], ebx
mov dword [esi + 0xb8], ebx
mov dword [esi + 0xb4], ebx
mov dword [esi + 0xb0], ebx
mov dword [esi + 0x12c], ebx
mov dword [esi + 0x128], ebx
mov dword [esi + 0x124], ebx
mov dword [esi + 0x138], ebx
mov dword [esi + 0x134], ebx
mov dword [esi + 0x130], ebx
mov dword [esi + 0x144], ebx
mov dword [esi + 0x140], ebx
mov dword [esi + 0x13c], ebx
mov eax, dword [esi + 0x9c]
mov dword [eax + 0x40], ebx
mov dword [eax + 0x3c], ebx
mov dword [eax + 0x38], ebx
lea ebp, [esi + 0x124]
add eax, 0x38
mov eax, dword [esi + 0xa0]
mov dword [eax + 0x40], ebx
mov dword [eax + 0x3c], ebx
mov dword [eax + 0x38], ebx
add eax, 0x38
mov dword [esi + 0xc4], ebx
mov dword [esi + 0xc0], ebx
mov dword [esi + 0xbc], ebx
mov dword [esi + 0xd0], ebx
mov dword [esi + 0xcc], ebx
mov dword [esi + 0xc8], ebx
mov dword [esi + 0xe8], ebx
mov dword [esi + 0xe4], ebx
mov dword [esi + 0xe0], ebx
test byte [esi + 0x18], 1
je 0x10048ba6
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
lea eax, [esi + 0xa4]
push eax
call fcn.10046c30
add esp, 0xc
test eax, eax
jl 0x10048f7a
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
lea eax, [esi + 0xb0]
push eax
call fcn.10046c30
add esp, 0xc
test eax, eax
jl 0x10048f7a
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
push ebp
call fcn.10046c30
add esp, 0xc
test eax, eax
jl 0x10048f7a
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
push eax
push ecx
lea eax, [esi + 0x130]
push eax
call fcn.10046c30
add esp, 0xc
test eax, eax
jl 0x10048f7a
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
push edx
push eax
lea eax, [esi + 0x13c]
push eax
call fcn.10046c30
add esp, 0xc
test eax, eax
jl 0x10048f7a
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x9c]
push ecx
push edx
add eax, 0x38
push eax
call fcn.10046c30
add esp, 0xc
test eax, eax
jl 0x10048f7a
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xa0]
push ecx
push edx
add eax, 0x38
push eax
call fcn.10046c30
add esp, 0xc
test eax, eax
jl 0x10048f7a
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
lea eax, [esi + 0xbc]
push eax
call fcn.10046c30
add esp, 0xc
test eax, eax
jl 0x10048f7a
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
push eax
push ecx
lea eax, [esi + 0xc8]
push eax
call fcn.10046c30
add esp, 0xc
test eax, eax
jl 0x10048f7a
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
push edx
push eax
lea eax, [esi + 0xe0]
push eax
call fcn.10046c30
add esp, 0xc
test eax, eax
jl 0x10048f7a
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
lea eax, [esi + 0xf8]
push eax
call fcn.10046c30
add esp, 0xc
test eax, eax
jl 0x10048f7a
mov eax, dword [esi + 0x60]
cmp eax, ebx
mov dword [esi + 0x114], ebx
mov dword [esi + 0x118], ebx
mov dword [esi + 0x11c], ebx
mov dword [esi + 0x148], 0xffffffff
mov dword [esi + 0x120], ebx
jle 0x10048dc5
lea ecx, [eax*4]
push 0x40
push ecx
call fcn.10052d60
add esp, 8
mov dword [esi + 0x120], eax
cmp eax, ebx
je 0x10048f7a
xor eax, eax
cmp dword [esi + 0x60], ebx
jle 0x10048d20
mov edx, dword [esi + 0x120]
mov dword [edx + eax*4], ebx
inc eax
cmp eax, dword [esi + 0x60]
jl 0x10048d11
xor ebp, ebp
cmp dword [esi + 0x60], ebx
jle 0x10048dc5
jmp 0x10048d30
push 0x40
push 0x140
call fcn.10052d60
mov ecx, dword [esi + 0x120]
mov dword [ecx + ebp*4], eax
mov edx, dword [esi + 0x120]
add esp, 8
cmp dword [edx + ebp*4], ebx
je 0x10048f10
mov eax, dword [esi + 0x14]
imul eax, dword [esi + 0x10]
imul eax, eax, 0x1b4
push 0x40
push eax
call fcn.10052d60
mov ecx, dword [esi + 0x120]
mov edx, dword [ecx + ebp*4]
mov dword [edx + 0x44], eax
mov eax, dword [esi + 0x120]
mov eax, dword [eax + ebp*4]
add esp, 8
cmp dword [eax + 0x44], ebx
je 0x10048f10
mov dword [eax + 0x40], ebx
mov dword [eax + 0x3c], ebx
mov dword [eax + 0x38], ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x120]
mov edx, dword [esi + 8]
push ecx
mov ecx, dword [eax + ebp*4]
push edx
add ecx, 0x38
push ecx
call fcn.10046c30
add esp, 0xc
test eax, eax
jl 0x10048f10
inc ebp
cmp ebp, dword [esi + 0x60]
jl 0x10048d30
mov edx, dword [esi + 0x60]
inc edx
imul edx, edx, 0xf0
push 0x40
push edx
mov dword [esi + 0x104], ebx
mov dword [esi + 0x108], ebx
mov dword [esi + 0x10c], ebx
call fcn.10052d60
add esp, 8
mov dword [esi + 0x110], eax
cmp eax, ebx
je 0x10048f10
mov eax, dword [esi + 0x60]
inc eax
xor ecx, ecx
test eax, eax
jle 0x10048e34
xor edx, edx
jmp 0x10048e10
mov eax, dword [esi + 0x110]
lea eax, [edx + eax + 0xe4]
mov dword [eax + 8], ebx
mov dword [eax + 4], ebx
mov dword [eax], ebx
mov eax, dword [esi + 0x60]
inc ecx
inc eax
add edx, 0xf0
cmp ecx, eax
jl 0x10048e10
mov ecx, dword [esi + 0x60]
inc ecx
xor ebp, ebp
test ecx, ecx
jle 0x10048e79
mov dword [esp + 0x10], ebx
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x110]
push edx
mov edx, dword [esp + 0x14]
push eax
lea eax, [ecx + edx + 0xe4]
push eax
call fcn.10046c30
add esp, 0xc
test eax, eax
jl 0x10048ec8
mov ecx, dword [esi + 0x60]
add dword [esp + 0x10], 0xf0
inc ebp
inc ecx
cmp ebp, ecx
jl 0x10048e42
mov eax, dword [esi + 0x9c]
fld dword [0x10081b08]
mov dword [esi + 0x70], ebx
mov dword [esi + 0x74], ebx
mov dword [esi + 0x23c], ebx
mov dword [eax + 0x30], ebx
mov dword [eax + 0x34], ebx
mov eax, dword [esi + 0xa0]
mov dword [eax + 0x30], ebx
mov dword [eax + 0x34], ebx
fstp dword [esi + 0x240]
mov dword [esi + 0x80], ebx
mov dword [edi + 0x5c], esi
mov edx, dword [esi + 0x78]
push edx
call fcn.10052d40
add esp, 4
pop edi
pop esi
pop ebx
xor eax, eax
pop ebp
add esp, 0x30
ret
mov edx, dword [esi + 0x60]
inc edx
xor edi, edi
test edx, edx
jle 0x10048f01
xor ebp, ebp
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x110]
push eax
push ecx
lea eax, [edx + ebp + 0xe4]
push eax
call fcn.10046d10
mov ecx, dword [esi + 0x60]
inc edi
inc ecx
add esp, 0xc
add ebp, 0xf0
cmp edi, ecx
jl 0x10048ed4
mov edx, dword [esi + 0x110]
push edx
call fcn.10052dc0
add esp, 4
mov eax, dword [esi + 0x60]
cmp eax, ebx
jle 0x10048f7a
xor ebp, ebp
cmp eax, ebx
jle 0x10048f6b
lea ecx, [ecx]
mov eax, dword [esi + 0x120]
cmp dword [eax + ebp*4], ebx
lea eax, [eax + ebp*4]
je 0x10048f65
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov eax, dword [eax]
push ecx
push edx
add eax, 0x38
push eax
call fcn.10046d10
mov ecx, dword [esi + 0x120]
mov edx, dword [ecx + ebp*4]
mov eax, dword [edx + 0x44]
push eax
call fcn.10052dc0
mov ecx, dword [esi + 0x120]
mov edx, dword [ecx + ebp*4]
push edx
call fcn.10052dc0
add esp, 0x14
inc ebp
cmp ebp, dword [esi + 0x60]
jl 0x10048f20
mov eax, dword [esi + 0x120]
push eax
call fcn.10052dc0
add esp, 4
test byte [esi + 0x18], 1
je 0x10048fab
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
lea eax, [esi + 0xa4]
push eax
call fcn.10046d10
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
lea eax, [esi + 0xb0]
push eax
call fcn.10046d10
add esp, 0x18
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
lea eax, [esi + 0x124]
push eax
call fcn.10046d10
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
push eax
push ecx
lea eax, [esi + 0x130]
push eax
call fcn.10046d10
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
push edx
push eax
lea eax, [esi + 0x13c]
push eax
call fcn.10046d10
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x9c]
push ecx
push edx
add eax, 0x38
push eax
call fcn.10046d10
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xa0]
push ecx
push edx
add eax, 0x38
push eax
call fcn.10046d10
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
lea eax, [esi + 0xbc]
push eax
call fcn.10046d10
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
add esp, 0x48
push eax
push ecx
lea eax, [esi + 0xc8]
push eax
call fcn.10046d10
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
push edx
push eax
lea eax, [esi + 0xe0]
push eax
call fcn.10046d10
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
push ecx
push edx
lea eax, [esi + 0xf8]
push eax
call fcn.10046d10
add esp, 0x24
mov ecx, dword [esi + 0x78]
push ecx
call fcn.10052dc0
add esp, 4
mov eax, dword [esi + 0x9c]
mov ecx, dword [eax + 0x44]
push ecx
call fcn.10052dc0
mov edx, dword [esi + 0xa0]
mov eax, dword [edx + 0x44]
push eax
call fcn.10052dc0
add esp, 8
mov ecx, dword [esi + 0x9c]
push ecx
call fcn.10052dc0
mov edx, dword [esi + 0xa0]
push edx
call fcn.10052dc0
add esp, 8
test byte [esi + 0x18], 4
je 0x100490c8
mov eax, dword [esi + 0x98]
push eax
call fcn.10052dc0
add esp, 4
xor edi, edi
cmp dword [esi + 0x90], ebx
jle 0x100490f7
mov ecx, dword [esi + 0x94]
lea eax, [ecx + edi*8]
mov ecx, dword [eax]
cmp ecx, ebx
je 0x100490ee
mov edx, dword [eax + 4]
push ebx
push ebx
push 2
push edx
call ecx
add esp, 0x10
inc edi
cmp edi, dword [esi + 0x90]
jl 0x100490d2
mov eax, dword [esi + 0x94]
push eax
call fcn.10052dc0
mov ecx, dword [esi + 0x8c]
push ecx
call fcn.10052dc0
push esi
call fcn.10052dc0
mov edx, dword [esp + 0x50]
add esp, 0xc
pop edi
pop esi
mov dword [edx + 0x5c], ebx
pop ebx
mov eax, 0xfffffffe
pop ebp
add esp, 0x30
ret
pop ebx
or eax, 0xffffffff
pop ebp
add esp, 0x30
ret
or eax, 0xffffffff
pop ebp
add esp, 0x30
ret