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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x2c]
cmp eax, dword [ecx + 8]
jbe 0x56ccb0
sub esp, 0xac
mov eax, dword [esp + 0xb4]
test eax, eax
jne 0x56cc9d
mov eax, 3
lea ecx, [0x5ee4ed]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], ecx
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0056c4b0
movzx eax, byte [esp + 8]
test al, al
je 0x56cbfb
mov edx, dword [0x7071e0]
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 4], eax
mov eax, dword [edx]
call eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
test ecx, ecx
jne 0x56cbdb
mov dword [esp + 0x28], eax
lea eax, [0x5c06c0]
mov dword [esp], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xc4]
mov dword [esp + 8], ecx
call fcn.0040bb50
movzx eax, byte [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test al, al
je 0x56cb92
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x28]
mov ebx, dword [eax + 0x18]
mov ebp, dword [eax + 0x14]
mov dword [esp], ebp
mov dword [esp + 4], ebx
call fcn.0056add0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x28]
mov dword [edx + 0x18], eax
mov eax, dword [0x71de50]
lea ebx, [edx + 0x14]
test eax, eax
jne 0x56cb81
mov dword [edx + 0x14], ecx
call fcn.00405d10
mov eax, dword [esp]
mov dword [esp + 0x64], eax
lea ecx, [0x5e4060]
mov dword [esp], ecx
call fcn.0040dcf0
mov eax, dword [esp + 4]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xb4]
mov dword [eax + 4], ecx
mov ecx, dword [0x71de50]
lea edx, [eax + 8]
test ecx, ecx
jne 0x56cb49
mov ecx, dword [esp + 0xb0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov dword [eax + 0x10], 8
mov edx, dword [0x71de50]
lea ebx, [eax + 0xc]
test edx, edx
jne 0x56cb2a
lea edx, [0x5ef08c]
mov dword [eax + 0xc], edx
mov dword [eax + 0x14], 1
mov dword [eax + 0x18], 1
mov edx, dword [0x71de50]
lea ebx, [eax + 0x1c]
test edx, edx
jne 0x56cb0d
mov edx, dword [esp + 0x64]
mov dword [eax + 0x1c], edx
mov edx, dword [esp + 0x34]
mov dword [eax + 0x20], edx
mov edx, dword [0x71de50]
lea ebx, [eax + 0x24]
mov dword [esp + 0x60], ebx
test edx, edx
jne 0x56caec
mov edx, dword [esp + 0x38]
mov dword [eax + 0x24], edx
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
mov dword [eax + 0x48], ecx
mov ecx, dword [0x71de50]
lea ebp, [eax + 0x44]
test ecx, ecx
jne 0x56cad3
mov dword [eax + 0x44], edx
mov ecx, dword [esp + 0xc0]
test ecx, ecx
je 0x56cacc
je 0x56caa7
mov edx, dword [ecx + 8]
cmp edx, 0x4128187d
jne 0x56c8b8
lea ebp, [0x61e460]
cmp ebp, ecx
jne 0x56cac2
mov ebp, dword [esp + 0xc4]
jne 0x56c8b8
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp + 4]
mov dword [esp + 0x24], ebx
cmp ecx, ebx
mov edi, ebp
xchg ebp, ebx
setae bl
xchg ebp, ebx
sar ebx, 0x1f
cmp edx, ebx
sete al
and eax, ebp
cmp edx, ebx
setg dl
or edx, eax
test dl, dl
je 0x56c8ab
xor eax, eax
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x2c], eax
sar eax, 0x1f
mov dword [ecx + 0x30], eax
mov eax, edi
lea edi, [esp + 0x80]
mov esi, eax
call fcn.0044c30e
lea eax, [0x5be340]
mov dword [esp], eax
call fcn.0040dcf0
mov eax, dword [esp + 4]
lea ecx, [0x57d9b0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
lea edx, [ecx + 0x28]
mov ebx, dword [0x71de50]
lea edi, [eax + 4]
test ebx, ebx
jne 0x56c869
lea esi, [esp + 0x80]
call fcn.0044c30e
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x28], eax
mov eax, dword [ecx + 0x28]
lea edx, [ecx + 0x28]
test eax, eax
je 0x56c80f
mov eax, dword [ecx + 0x30]
mov ebx, dword [ecx + 0x2c]
test ebx, ebx
sete bl
test eax, eax
sete al
and eax, ebx
test al, al
je 0x56c80f
lea eax, [0x61f720]
mov dword [ecx + 0x20], eax
mov eax, dword [0x71de50]
test eax, eax
jne 0x56c833
lea eax, [0x71dce4]
mov dword [ecx + 0x24], eax
lea eax, [0x601764]
mov dword [ecx + 0x28], eax
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
add esp, 0xac
ret
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0x60]
mov dword [esp], eax
lea eax, [0x71dce4]
mov dword [esp + 4], eax
call fcn.0040e560
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
lea eax, [0x601764]
mov dword [esp + 4], eax
call fcn.0040e560
mov ecx, dword [esp + 0x30]
jmp 0x56c80f
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], edx
lea eax, [0x5cd580]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0040e670
mov eax, dword [esp + 0x54]
mov dword [esp], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
call fcn.0040e560
mov ecx, dword [esp + 0x30]
jmp 0x56c7ca
mov edx, dword [esp + 0x24]
sub edx, ecx
mov eax, edx
jmp 0x56c768
cmp edx, 0xa5164854
jne 0x56c9c0
lea ebp, [0x61e0c0]
cmp ebp, ecx
jne 0x56cab8
mov ebp, dword [esp + 0xc4]
jne 0x56c9c0
mov dword [esp + 0x2c], ebp
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov ebx, dword [ebp + 4]
mov edi, ebx
sar ebx, 0x1f
cmp ecx, edi
xchg ebp, ebx
setae bl
xchg ebp, ebx
cmp edx, ebx
sete al
and eax, ebp
cmp edx, ebx
setg dl
or edx, eax
test dl, dl
je 0x56c9b7
xor eax, eax
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x2c], eax
sar eax, 0x1f
mov dword [ecx + 0x30], eax
lea edi, [esp + 0x94]
mov esi, dword [esp + 0x2c]
call fcn.0044c304
lea eax, [0x5be2e0]
mov dword [esp], eax
call fcn.0040dcf0
mov eax, dword [esp + 4]
lea ecx, [0x57d8f0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
lea edx, [ecx + 0x28]
mov ebx, dword [0x71de50]
lea edi, [eax + 4]
test ebx, ebx
jne 0x56c975
lea esi, [esp + 0x94]
call fcn.0044c304
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x28], eax
jmp 0x56c7ca
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
lea eax, [0x5cb380]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x94]
mov dword [esp + 8], eax
call fcn.0040e670
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
call fcn.0040e560
mov ecx, dword [esp + 0x30]
jmp 0x56c7ca
sub edi, ecx
mov eax, edi
jmp 0x56c912
cmp edx, 0xe763bb76
jne 0x56caa7
lea edx, [0x61e080]
cmp edx, ecx
jne 0x56caae
mov ecx, dword [esp + 0xc4]
jne 0x56caa7
mov edx, dword [ecx + 0xc]
mov ebp, dword [ecx + 4]
sub ebp, edx
mov dword [eax + 0x2c], ebp
sar ebp, 0x1f
mov dword [eax + 0x30], ebp
mov edx, dword [ecx]
mov ebp, dword [ecx + 0xc]
mov esi, dword [ecx + 4]
mov ecx, dword [ecx + 8]
cmp ebp, esi
ja 0x56cca9
mov dword [esp + 0x48], edx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], ecx
lea eax, [0x5bdfe0]
mov dword [esp], eax
call fcn.0040dcf0
mov eax, dword [esp + 4]
lea ecx, [0x57d800]
mov dword [eax], ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
sub ecx, edx
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x1c]
sub ecx, edx
mov dword [eax + 0xc], ecx
mov ebx, dword [esp + 0x30]
lea ebp, [ebx + 0x28]
mov esi, dword [0x71de50]
lea edi, [eax + 4]
neg ecx
sar ecx, 0x1f
and edx, ecx
mov ecx, dword [esp + 0x48]
add ecx, edx
test esi, esi
jne 0x56ca79
mov dword [eax + 4], ecx
mov dword [ebx + 0x28], eax
mov ecx, ebx
jmp 0x56c7ca
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], ebp
mov dword [esp], edi
mov dword [esp + 4], ecx
call fcn.0040e560
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
call fcn.0040e560
mov ebx, dword [esp + 0x30]
jmp 0x56ca72
mov ecx, eax
jmp 0x56c7ca
mov ecx, 0
jmp 0x56c9e1
mov ebp, 0
jmp 0x56c8d9
mov ebp, 0
jmp 0x56c72f
mov ecx, eax
jmp 0x56c80f
mov dword [esp], ebp
mov dword [esp + 4], edx
call fcn.0040e560
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x60]
jmp 0x56c6f6
mov dword [esp], ebx
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
call fcn.0040e560
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x60]
jmp 0x56c6d9
mov dword [esp], ebx
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
call fcn.0040e560
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
jmp 0x56c6b6
mov dword [esp], ebx
lea eax, [0x5ef08c]
mov dword [esp + 4], eax
call fcn.0040e560
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
jmp 0x56c690
mov dword [esp + 0x3c], edx
mov dword [esp], eax
mov ecx, dword [esp + 0xb0]
mov dword [esp + 4], ecx
call fcn.0040e560
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call fcn.0040e560
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
jmp 0x56c66f
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.0040e560
jmp 0x56c622
mov eax, dword [esp + 0xc0]
test eax, eax
je 0x56c5e1
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x6c], ecx
lea edx, [0x61f6a0]
mov dword [esp], edx
lea edx, [esp + 0x68]
mov dword [esp + 4], edx
call fcn.0040b710
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
jmp 0x56c5e1
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], ebx
add esp, 0xac
ret
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
lea eax, [0x5b5d40]
mov dword [esp], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
call fcn.0040b580
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
lea eax, [0x5f5387]
mov dword [esp], eax
mov dword [esp + 4], 0x1b
lea eax, [esp + 0x78]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004a8520
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], eax
add esp, 0xac
ret
mov ecx, dword [esp + 0xb0]
jmp 0x56c54a
call fcn.00425870
ud2
call fcn.0044a3c0
jmp fcn.0056c510