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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x78]
cmp eax, dword [ecx + 8]
jbe 0x52e280
sub esp, 0xf8
nop
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x10c]
jmp 0x52d422
dec edx
test edx, edx
jle 0x52d42e
mov ebx, dword [ecx + edx*4 - 4]
test ebx, ebx
je 0x52d421
nop
mov ebx, dword [esp + 0x114]
mov ebp, dword [esp + 0x118]
jmp 0x52d440
dec ebp
test ebp, ebp
jle 0x52d450
mov esi, dword [ebx + ebp*4 - 4]
test esi, esi
je 0x52d43f
test edx, edx
jmp 0x52d452
test edx, edx
je 0x52d648
cmp ebp, 0x64
jl 0x52d5f6
mov esi, edx
sub edx, ebp
test edx, edx
jl 0x52d5ef
mov dword [esp + 0xc8], esi
mov dword [esp + 0x9c], ebp
mov dword [esp + 0x90], edx
mov eax, ebp
shr ebp, 1
mov dword [esp + 0xa8], ebp
mov edi, ebx
mov ebx, dword [esp + 0x120]
mov esi, dword [esp + 0x128]
mov ecx, dword [esi + ebx*4]
lea edx, [esi + ebx*4]
test ecx, ecx
je 0x52d587
mov edx, dword [ecx + 8]
mov ecx, dword [ecx]
inc ebp
cmp edx, ebp
jge 0x52d55d
mov ecx, dword [esp + 0xa8]
test ecx, ecx
jne 0x52d50e
lea eax, [0x67e160]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00447740
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x120]
mov esi, dword [esp + 0x128]
mov edi, dword [esp + 0x114]
mov ebp, 1
mov edx, 1
jmp 0x52d55d
mov dword [esp + 0x8c], ebp
lea eax, [0x67e160]
mov dword [esp], eax
mov dword [esp + 4], ebp
lea edx, [ecx + 5]
mov dword [esp + 0x48], edx
mov dword [esp + 8], edx
call fcn.00447740
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x120]
mov esi, dword [esp + 0x128]
mov edi, dword [esp + 0x114]
mov ebp, dword [esp + 0x8c]
mov edx, dword [esp + 0x48]
mov ebx, dword [esi + ebx*4]
mov dword [ebx + 4], ebp
mov dword [ebx + 8], edx
mov edx, dword [0xa43e50]
test edx, edx
jne 0x52d574
mov dword [ebx], ecx
jmp 0x52d5e3
mov edx, edi
mov edi, ebx
mov ebp, eax
mov eax, ecx
call fcn.0045f670
mov eax, ebp
mov edi, edx
jmp 0x52d5e3
mov dword [esp + 0xf4], edx
mov dword [esp], eax
call fcn.00527320
mov eax, dword [0xa43e50]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x52d5b7
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x128]
mov dword [edx + eax*4], ecx
jmp 0x52d5d3
mov edi, dword [esp + 0xf4]
mov eax, ecx
call fcn.0045f670
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x9c]
mov esi, edx
mov edi, dword [esp + 0x114]
mov ecx, dword [esp + 0x90]
jmp 0x52d6de
add esp, 0xf8
ret
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x104]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x110]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x20], eax
call fcn.0052cf30
add esp, 0xf8
ret
nop
mov eax, dword [esp + 0x100]
test eax, eax
je 0x52d66a
mov ecx, dword [esp + 0xfc]
mov dword [esp], ecx
shl eax, 2
mov dword [esp + 4], eax
call fcn.0045fc90
add esp, 0xf8
ret
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
mov ecx, dword [esp + 0x100]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x104]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xe8]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x80]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x18], ebx
call fcn.00525e40
mov eax, dword [esp + 0x9c]
mov esi, dword [esp + 0x128]
mov edi, dword [esp + 0x114]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xa8]
cmp ecx, edx
jle 0x52da87
mov ebx, dword [esp + 0x120]
mov ebp, dword [esi + ebx*4]
sub ecx, edx
mov dword [esp + 0xc4], ecx
mov esi, dword [esp + 0x110]
sub esi, ecx
mov dword [esp + 0x58], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
shl ecx, 2
sar esi, 0x1f
and ecx, esi
mov esi, dword [esp + 0x108]
add ecx, esi
mov dword [esp + 0xd8], ecx
mov esi, dword [esp + 0xc8]
mov ebx, dword [esp + 0xc4]
sub esi, ebx
mov dword [esp + 0x54], esi
mov ebx, dword [ebp]
mov dword [esp + 0xe8], ebx
mov esi, dword [ebp + 4]
mov dword [esp + 0x78], esi
mov ebp, dword [ebp + 8]
mov dword [esp + 0x80], ebp
nop
test esi, esi
je 0x52d79c
mov dword [esp], ebx
shl esi, 2
mov dword [esp + 4], esi
call fcn.0045fc90
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0xe8]
mov ebp, dword [esp + 0x80]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x114]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
lea ebp, [edx - 1]
mov dword [esp + 0x60], ebp
mov ebx, dword [esp + 0x58]
sub ebx, edx
inc ebx
mov dword [esp + 0xc0], ebx
neg ebx
sar ebx, 0x1f
shl ebp, 2
mov dword [esp + 0xbc], ebp
and ebx, ebp
add ebx, ecx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xc], ebx
lea ebx, [eax + 1]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x11c]
sub ebx, edx
inc ebx
mov dword [esp + 0xb8], ebx
neg ebx
sar ebx, 0x1f
and ebx, ebp
add ebx, edi
mov dword [esp + 0xec], ebx
mov dword [esp + 0x18], ebx
sub eax, edx
inc eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x1c], eax
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x120]
inc ebp
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x124]
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x128]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x34], eax
call fcn.0052d3f0
nop
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x78]
jmp 0x52e059
mov dword [esp + 0x98], ecx
mov edx, dword [esp + 0x124]
mov ebx, dword [edx + 8]
mov ebp, dword [edx]
mov esi, dword [esp + 0x9c]
lea edi, [esi + esi*2]
cmp ebx, edi
jge 0x52d90c
cmp edi, 1
jne 0x52d8bc
mov dword [esp + 0xb0], 0
mov edi, 1
lea ebp, [esp + 0xb0]
mov ebx, 1
jmp 0x52d90c
mov dword [esp + 0x88], edi
lea eax, [0x67e160]
mov dword [esp], eax
mov dword [esp + 4], edi
lea ecx, [esi + esi*2 + 4]
mov dword [esp + 0x44], ecx
mov dword [esp + 8], ecx
call fcn.00447740
mov ebp, dword [esp + 0xc]
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x124]
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0x88]
mov ebx, dword [esp + 0x44]
nop
test edi, edi
je 0x52d94c
mov dword [esp + 0x44], ebx
mov dword [esp + 0x3c], edi
mov dword [esp + 0xd0], ebp
mov dword [esp], ebp
shl edi, 2
mov dword [esp + 4], edi
call fcn.0045fc90
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x98]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0xd0]
mov edi, dword [esp + 0x3c]
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x114]
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x11c]
mov dword [esp + 0x20], esi
call fcn.00525f20
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x70], edx
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x54]
xor esi, esi
jmp 0x52e0f2
mov esi, ebp
jmp 0x52e217
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x14], ebp
call fcn.005250d0
mov eax, dword [esp + 0x18]
test eax, eax
jg 0x52e22c
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov ecx, dword [esp + 0x68]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x20], ebx
call fcn.0052e390
mov eax, dword [esp + 0x24]
test eax, eax
jbe 0x52d671
mov ecx, dword [esp + 0x68]
mov edx, ecx
shl ecx, 2
mov ebx, dword [esp + 0x58]
sub ebx, edx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, ecx
mov ecx, dword [esp + 0xd8]
add ecx, ebx
mov dword [esp], ecx
mov ebx, dword [esp + 0x54]
sub ebx, edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], eax
call fcn.0052e400
jmp 0x52d671
mov ecx, dword [esp + 0x120]
mov ebx, dword [esi + ecx*4]
mov ebp, dword [ebx]
mov dword [esp + 0xe4], ebp
mov esi, dword [ebx + 4]
mov dword [esp + 0x74], esi
mov ebx, dword [ebx + 8]
mov dword [esp + 0x7c], ebx
nop
test esi, esi
je 0x52dae7
mov dword [esp], ebp
shl esi, 2
mov dword [esp + 4], esi
call fcn.0045fc90
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0xe4]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x114]
lea ecx, [edx - 1]
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0x110]
sub eax, edx
inc eax
mov dword [esp + 0x50], eax
shl ecx, 2
mov dword [esp + 0xc4], ecx
neg eax
sar eax, 0x1f
and eax, ecx
mov edi, dword [esp + 0xc8]
sub edi, edx
inc edi
mov dword [esp + 0x4c], edi
mov ecx, dword [esp + 0x108]
add eax, ecx
jmp 0x52db2e
dec edi
mov ecx, dword [esp + 0x108]
test edi, edi
jle 0x52db3a
mov ecx, dword [eax + edi*4 - 4]
test ecx, ecx
je 0x52db26
mov dword [esp + 0xd4], eax
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x11c]
sub edi, edx
inc edi
mov dword [esp + 0xc0], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
mov ecx, dword [esp + 0xc4]
and edi, ecx
mov ecx, dword [esp + 0x114]
add edi, ecx
mov dword [esp + 0xf0], edi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x9c]
sub edi, edx
inc edi
mov dword [esp + 0xbc], edi
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x120]
inc edx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x124]
mov dword [esp + 0x28], edx
mov edi, dword [esp + 0x128]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x12c]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x130]
mov dword [esp + 0x34], edi
call fcn.0052d3f0
nop
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x74]
jmp 0x52dbff
dec ecx
test ecx, ecx
jle 0x52dc0b
mov edx, dword [eax + ecx*4 - 4]
test edx, edx
je 0x52dbfe
mov dword [esp + 0x94], ecx
mov edx, dword [esp + 0x124]
mov ebx, dword [edx + 8]
mov edx, dword [edx]
mov ebp, dword [esp + 0x9c]
lea esi, [ebp + ebp*2]
cmp ebx, esi
jge 0x52dc92
cmp esi, 1
jne 0x52dc50
mov dword [esp + 0xac], 0
mov esi, 1
lea edx, [esp + 0xac]
mov ebx, 1
jmp 0x52dc92
mov dword [esp + 0x84], esi
lea eax, [0x67e160]
mov dword [esp], eax
mov dword [esp + 4], esi
lea eax, [ebp + ebp*2 + 4]
mov dword [esp + 0x40], eax
mov dword [esp + 8], eax
call fcn.00447740
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x94]
mov esi, dword [esp + 0x84]
mov ebx, dword [esp + 0x40]
nop
test esi, esi
je 0x52dcd2
mov dword [esp + 0x40], ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0xcc], edx
mov dword [esp], edx
shl esi, 2
mov dword [esp + 4], esi
call fcn.0045fc90
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x38]
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x114]
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x11c]
mov dword [esp + 0x20], esi
call fcn.00525f20
mov eax, dword [esp + 0x24]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x6c], edx
mov ebx, dword [esp + 0x108]
mov ebp, dword [esp + 0xc8]
xor esi, esi
jmp 0x52dd64
mov edi, dword [esp + 0xa0]
lea esi, [edi + 1]
mov ebx, dword [esp + 0x108]
mov ebp, dword [esp + 0xc8]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
cmp esi, 2
jge 0x52dec8
mov dword [esp + 0xa0], esi
mov edi, ebp
jmp 0x52e043
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x110]
mov dword [esp + 0x14], ebp
call fcn.005250d0
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x52dd3d
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 1
call fcn.0052e400
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x6c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x114]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ebp, dword [esp + 0x11c]
mov dword [esp + 0x20], ebp
call fcn.0052e390
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x5c]
cmp ecx, edx
jle 0x52de7b
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0xa8]
sub edx, ebx
inc edx
mov esi, edx
neg edx
sar edx, 0x1f
mov edi, dword [esp + 0xc4]
and edx, edi
mov edi, dword [esp + 0xdc]
add edx, edi
mov dword [esp], edx
sub ecx, ebx
inc ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
call fcn.0052e400
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x50]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0xc0]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 0
call fcn.00525e40
jmp 0x52dd3d
mov esi, ebp
jmp 0x52decd
dec ebp
test ebp, ebp
jle 0x52ded9
mov edi, dword [ebx + ebp*4 - 4]
test edi, edi
je 0x52decc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x110]
mov dword [esp + 0x14], ebp
call fcn.005250d0
mov eax, dword [esp + 0x18]
test eax, eax
jg 0x52e023
mov eax, dword [esp + 0x108]
mov dword [esp], eax
mov ecx, dword [esp + 0x64]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x110]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0xdc]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x20], ebx
call fcn.0052e390
mov eax, dword [esp + 0x24]
test eax, eax
jbe 0x52dfa6
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x64]
sub ecx, edx
mov ebx, ecx
neg ecx
mov ebp, edx
shl edx, 2
sar ecx, 0x1f
and ecx, edx
mov edx, dword [esp + 0x108]
add ecx, edx
mov dword [esp], ecx
mov edx, dword [esp + 0xc8]
sub edx, ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
call fcn.0052e400
mov eax, dword [esp + 0x1c]
test eax, eax
ja 0x52e00b
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x94]
jmp 0x52dfbb
dec ecx
test ecx, ecx
jle 0x52dfc7
mov edx, dword [eax + ecx*4 - 4]
test edx, edx
je 0x52dfba
mov edx, dword [esp + 0xfc]
mov dword [esp], edx
mov edx, dword [esp + 0x100]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x104]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
call fcn.00525e40
add esp, 0xf8
ret
lea eax, [0x67e720]
mov dword [esp], eax
lea eax, [0x894c50]
mov dword [esp + 4], eax
call fcn.00433690
lea eax, [0x67e720]
mov dword [esp], eax
lea eax, [0x894c50]
mov dword [esp + 4], eax
call fcn.00433690
dec ebp
mov edi, dword [esp + 0xc8]
test ebp, ebp
jle 0x52dd7b
mov edi, dword [ebx + ebp*4 - 4]
test edi, edi
je 0x52e03b
jmp 0x52dd7b
dec ecx
test ecx, ecx
jle 0x52d878
mov edx, dword [eax + ecx*4 - 4]
test edx, edx
je 0x52e058
jmp 0x52d878
mov eax, dword [esp + 0xf0]
mov dword [esp], eax
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0xa8]
sub ecx, edx
inc ecx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 8], ecx
mov ebp, dword [esp + 0xec]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0
call fcn.00525e40
mov eax, dword [esp + 0xa4]
lea esi, [eax + 1]
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x54]
cmp esi, 2
jge 0x52d9ba
mov dword [esp + 0xa4], esi
mov edi, ebp
jmp 0x52e24c
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x58]
mov dword [esp + 0x14], ebp
call fcn.005250d0
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x52e261
mov eax, dword [esp + 0xe8]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 1
call fcn.0052e400
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x70]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x114]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ebp, dword [esp + 0x11c]
mov dword [esp + 0x20], ebp
call fcn.0052e390
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
cmp ecx, edx
jle 0x52e06e
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0xa8]
sub edx, ebx
inc edx
mov esi, edx
neg edx
sar edx, 0x1f
mov edi, dword [esp + 0xbc]
and edx, edi
mov edi, dword [esp + 0xe0]
add edx, edi
mov dword [esp], edx
sub ecx, ebx
inc ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
call fcn.0052e400
jmp 0x52e06e
dec ebp
test ebp, ebp
jle 0x52d9c1
mov edi, dword [ebx + ebp*4 - 4]
test edi, edi
je 0x52e216
jmp 0x52d9c1
lea eax, [0x67e720]
mov dword [esp], eax
lea eax, [0x894c50]
mov dword [esp + 4], eax
call fcn.00433690
dec ebp
mov esi, dword [esp + 0xa4]
test ebp, ebp
jle 0x52e109
mov esi, dword [ebx + ebp*4 - 4]
test esi, esi
je 0x52e244
jmp 0x52e109
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x54]
jmp 0x52d9ba
call fcn.0045e260
jmp fcn.0052d3f0