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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x565113
sub esp, 0x54
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov ecx, dword [ecx + 0x10]
mov dword [esp], edx
call ecx
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x56510d
lea eax, [ecx + 4]
cmp ecx, 0xffffffff
je 0x564ae4
cdq
idiv ecx
jmp 0x564ae6
neg eax
imul eax, ecx
mov edx, dword [esp + 0x58]
mov ebx, dword [edx + 0x20]
mov ebp, dword [edx + 0x28]
cmp eax, ebp
ja 0x565104
mov dword [esp + 0x48], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ebp
mov dword [esp + 0x50], ebx
mov ecx, dword [esp + 0x60]
mov dword [esp], ecx
mov edx, dword [esp + 0x64]
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], eax
call fcn.0048b550
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x565090
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x34]
sub ecx, edx
add ecx, 0x40004
mov dword [eax + 0x38], ecx
mov ecx, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [esp], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov ebp, dword [esp + 0x38]
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebp
call ecx
mov edx, dword [esp + 0x38]
cmp edx, 4
jb 0x5650fa
mov edx, dword [esp + 0x50]
movzx ebx, byte [edx + 3]
movzx ebp, byte [edx + 2]
shl ebp, 8
or ebp, ebx
movzx ebx, byte [edx + 1]
shl ebx, 0x10
or ebx, ebp
movzx ebp, byte [edx]
shl ebp, 0x18
or ebp, ebx
cmp ebp, 0x40000
ja 0x565060
mov ebx, dword [esp + 0x48]
cmp ebx, 0x10
jge 0x565059
mov eax, 0x10
lea esi, [ebp + 4]
cmp esi, eax
jb 0x565029
cmp ebx, 8
jge 0x565022
mov eax, 8
test eax, eax
je 0x5650f5
mov ecx, eax
mov eax, esi
mov ebx, edx
xor edx, edx
div ecx
test edx, edx
jne 0x564ff2
mov ecx, dword [esp + 0x34]
cmp ecx, 4
jbe 0x5650eb
movzx edx, byte [ebx + 4]
cmp edx, 4
jae 0x564c4d
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
lea eax, [0x610c70]
mov dword [esp + 0x74], eax
lea eax, [0x60e830]
mov dword [esp + 0x78], eax
add esp, 0x54
ret
lea edi, [edx + 1]
cmp ebp, edi
jbe 0x564c1d
mov dword [esp + 0x28], ebp
mov dword [esp + 0x44], esi
mov edi, ebp
sub ebp, edx
mov dword [esp + 0x40], ebp
mov edx, dword [esp + 0x58]
mov eax, ebp
mov ebp, dword [edx + 8]
lea ebp, [edi + ebp + 4]
mov ebx, dword [edx + 0x28]
cmp ebp, ebx
ja 0x564f68
mov dword [edx + 0x24], ebp
mov ebx, dword [edx + 0x24]
mov ebp, dword [edx + 0x20]
mov edi, dword [edx + 0x28]
cmp ecx, ebx
ja 0x5650e2
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
sub edi, ecx
mov eax, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, ecx
lea edx, [ebp + edi]
mov dword [esp + 8], edx
sub ebx, ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
call fcn.0048b550
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
test eax, eax
jne 0x564f44
mov ebp, dword [esp + 0x58]
sub dword [ebp + 0x38], ebx
mov edx, dword [ebp + 0x28]
mov ebx, dword [ebp + 0x20]
mov ecx, dword [esp + 0x44]
cmp ecx, edx
ja 0x5650dd
mov eax, dword [esp + 0x34]
cmp eax, ecx
ja 0x5650d8
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [esp], esi
sub edx, eax
mov esi, edx
neg edx
sar edx, 0x1f
and edx, eax
add edx, ebx
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x28]
sub ebx, eax
lea eax, [ebx + 4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
call ecx
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x20]
mov ebx, dword [eax + 0x28]
mov ebp, dword [esp + 0x44]
cmp ebp, ecx
ja 0x5650d1
mov esi, dword [esp + 0x28]
sub ebx, esi
sub ecx, esi
add ebx, 0xfffffffc
neg ebx
sar ebx, 0x1f
and ebx, ebp
add ebx, edx
mov esi, dword [eax]
mov edi, dword [eax + 4]
test esi, esi
je 0x564f3d
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x3c], ecx
mov eax, dword [esi + 0x14]
mov dword [esp], edi
call eax
mov eax, dword [esp + 0x5c]
mov ecx, eax
shr eax, 0x18
mov edx, dword [esp + 0x58]
mov byte [edx + 0x1c], al
mov eax, ecx
shr ecx, 0x10
mov byte [edx + 0x1d], cl
mov ecx, eax
shr eax, 8
mov byte [edx + 0x1e], al
mov byte [edx + 0x1f], cl
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x20]
mov dword [esp], ecx
lea ecx, [edx + 0x1c]
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
mov dword [esp + 0xc], 4
call eax
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x20]
mov ebx, dword [esp + 0x44]
cmp ebx, edx
ja 0x5650ca
mov ebp, dword [eax]
mov esi, dword [eax + 4]
mov ebp, dword [ebp + 0x20]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
call ebp
mov eax, dword [esp + 0x58]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + 0x1c]
mov ebx, dword [eax + 0x2c]
mov ebp, dword [eax + 0x34]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebp
call ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x58]
mov dword [ebx + 0x30], ecx
mov dword [ebx + 0x34], edx
mov edx, dword [0x71e9f0]
test edx, edx
jne 0x564f30
mov dword [ebx + 0x2c], eax
mov ebp, dword [esp + 0x3c]
add ebp, 0xfffffffc
cmp ebp, ecx
jne 0x564f29
mov ebp, dword [esp + 0x4c]
xor edx, edx
xor esi, esi
jmp 0x564e8f
lea edi, [edx + 1]
mov dword [esp + 0x2c], edi
movzx edi, byte [edx + eax]
xchg edi, eax
mov byte [esp + 0x27], al
xchg edi, eax
movzx edi, byte [edx + ebp]
mov edx, edi
movzx edi, byte [esp + 0x27]
xor edi, edx
or esi, edi
mov edi, dword [esp + 0x2c]
mov edx, edi
cmp ecx, edx
jle 0x564e9a
ja 0x564e69
jmp 0x5650c3
nop
xchg esi, eax
movzx ebp, al
xchg esi, eax
dec ebp
shr ebp, 0x1f
cmp ebp, 1
jne 0x564ef9
mov ebp, dword [esp + 0x40]
lea ecx, [ebp + 4]
mov edx, dword [ebx + 0x28]
mov ebx, dword [ebx + 0x20]
cmp ecx, edx
ja 0x5650be
cmp ecx, 5
jb 0x5650b4
lea eax, [edx - 5]
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 5
add eax, ebx
mov dword [esp + 0x68], eax
lea eax, [ebp - 1]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
add esp, 0x54
ret
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
lea eax, [0x610c70]
mov dword [esp + 0x74], eax
lea eax, [0x60e838]
mov dword [esp + 0x78], eax
add esp, 0x54
ret
xor ebp, ebp
jmp 0x564ea4
lea edi, [ebx + 0x2c]
call fcn.0045e220
jmp 0x564e50
mov ebx, eax
jmp 0x564ea9
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
add esp, 0x54
ret
mov dword [esp + 0x30], ebp
lea eax, [0x5a5da0]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.004451f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x58]
mov dword [edx + 0x24], ecx
mov dword [edx + 0x28], ecx
mov ecx, dword [0x71e9f0]
test ecx, ecx
jne 0x564fe8
mov dword [edx + 0x20], eax
mov ebx, dword [edx + 0x20]
mov ebp, dword [edx + 0x24]
mov eax, dword [esp + 0x34]
cmp eax, ebp
jge 0x564fe2
mov ecx, eax
mov ebp, dword [esp + 0x50]
cmp ebx, ebp
je 0x564fc9
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.0045eba0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x28]
jmp 0x564c7f
mov ecx, eax
mov eax, ebp
jmp 0x564fb1
lea edi, [edx + 0x20]
call fcn.0045e220
jmp 0x564fa1
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
lea eax, [0x610c70]
mov dword [esp + 0x74], eax
lea eax, [0x60e828]
mov dword [esp + 0x78], eax
add esp, 0x54
ret
mov eax, ebx
jmp 0x564bed
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
lea eax, [0x610c70]
mov dword [esp + 0x74], eax
lea eax, [0x60e820]
mov dword [esp + 0x78], eax
add esp, 0x54
ret
mov eax, ebx
jmp 0x564bd4
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
lea eax, [0x610c70]
mov dword [esp + 0x74], eax
lea eax, [0x60e818]
mov dword [esp + 0x78], eax
add esp, 0x54
ret
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
add esp, 0x54
ret
mov eax, 5
call fcn.0045e300
call fcn.0045e2f0
mov eax, edx
call fcn.0045e2a0
mov ecx, ebx
call fcn.0045e2f0
mov eax, ebp
call fcn.0045e310
call fcn.0045e310
call fcn.0045e2f0
mov eax, ecx
mov ecx, ebx
call fcn.0045e310
mov eax, 4
call fcn.0045e2a0
call fcn.004305c0
mov ecx, 4
call fcn.0045e2e0
mov ecx, eax
mov edx, ebp
call fcn.0045e2f0
call fcn.004305c0
nop
call fcn.0045ccc0
jmp fcn.00564aa0