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

Disassembly:
mov ecx, dword [0x78bd58]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x34]
cmp eax, dword [ecx + 8]
jbe 0x56c72c
sub esp, 0xb4
mov eax, 0
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov byte [esp + 0x23], 0
nop
lea eax, [0x622990]
mov ecx, dword [esp + 0xb8]
mov dword [ecx + 0xc], eax
mov eax, dword [0x78be40]
test eax, eax
jne 0x56c01a
mov eax, dword [esp + 0xc8]
jmp 0x56c02e
call fcn.0046fef0
mov eax, dword [esp + 0xc8]
mov dword [edi], eax
mov edx, dword [ecx + 0x10]
mov dword [edi + 4], edx
mov dword [ecx + 0x10], eax
lea edx, [0x5ec424]
mov dword [esp + 0xac], edx
mov byte [esp + 0x23], 1
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
lea ebx, [0x56cab0]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
lea edx, [esp + 0x70]
mov dword [esp + 0xb0], edx
mov byte [esp + 0x23], 3
mov edx, dword [eax + 0x10]
mov dword [esp], ecx
mov ebx, dword [esp + 0xbc]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0xc0]
mov dword [esp + 8], ebp
mov esi, dword [esp + 0xc4]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
call fcn.0056cd60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00572020
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x18]
mov ebx, eax
and eax, 0x1f
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x90], ebp
mov esi, dword [esp + 0x10]
mov dword [esp + 0x8c], esi
nop
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
lea edi, [0x56c740]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
nop
cmp eax, 0x11
ja 0x56c14c
test eax, eax
je 0x56c3d0
cmp eax, 0x11
je 0x56c163
jmp 0x56c1be
cmp eax, 0x12
je 0x56c2c5
cmp eax, 0x15
je 0x56c260
cmp eax, 0x17
jne 0x56c1be
mov dword [esp + 0x3c], eax
cmp eax, 0x17
jne 0x56c171
mov edx, dword [esi + 4]
jmp 0x56c1a9
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
call fcn.004abac0
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0xc8]
test edx, edx
je 0x56c3d0
cmp eax, 0x17
mov ecx, 0
jmp 0x56c675
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], ebx
lea eax, [0x5d9a00]
mov dword [esp], eax
lea ecx, [esp + 0x94]
mov dword [esp + 4], ecx
call fcn.0040e660
mov eax, dword [esp + 8]
lea ecx, [0x5d9a00]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
lea ecx, [0x5e3291]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x1b
lea ecx, [esp + 0x7c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.0056ae90
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0xc8]
jmp 0x56c3d0
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
call fcn.004abac0
mov eax, dword [esp + 0xc]
test eax, eax
je 0x56c2b2
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
call fcn.004b6da0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x4c], eax
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x38], edx
xor ebx, ebx
jmp 0x56c5ad
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0xc8]
jmp 0x56c3d0
test ebx, 0x200
jne 0x56c2e9
test ebx, 0x80
je 0x56c2d9
mov eax, dword [esi]
jmp 0x56c2db
mov eax, esi
test eax, eax
je 0x56c3d0
test ebx, 0x200
jne 0x56c2f3
lea eax, [0x622d88]
jmp 0x56c30b
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
call fcn.004af030
mov eax, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
mov eax, dword [eax + 0x1c]
mov dword [esp], ebp
call eax
cmp dword [esp + 4], 2
je 0x56c321
xor eax, eax
jmp 0x56c467
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0x90]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xa8], eax
lea eax, [0x5d9a00]
mov dword [esp], eax
lea ecx, [esp + 0xa0]
mov dword [esp + 4], ecx
call fcn.0040e660
mov eax, dword [esp + 8]
lea ecx, [0x5d9a00]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xb8]
mov dword [esp], eax
lea ecx, [0x5e4b01]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x1f
lea ecx, [esp + 0x7c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call fcn.0056ae90
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0xc8]
mov eax, dword [edi + 0x18]
test eax, eax
je 0x56c40e
mov dword [esp], ecx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0xc], ecx
lea ecx, [0x622968]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call fcn.0056b5c0
mov byte [esp + 0x23], 1
mov edx, dword [esp + 0xb0]
mov eax, dword [edx]
call eax
mov byte [esp + 0x23], 0
call fcn.00578ed0
add esp, 0xb4
ret
mov ecx, dword [esp + 0x60]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
lea edx, [esp + 0x60]
call ecx
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x90]
mov dword [esp], ecx
mov edx, dword [esp + 0x8c]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x40]
mov dword [esp + 8], ebx
call fcn.004ad3e0
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
test al, al
je 0x56c505
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x84], edx
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.0040e720
mov eax, dword [esp + 4]
lea ecx, [0x5b2080]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x50]
test edx, edx
je 0x56c4fa
movzx ebx, byte [edx + 0xf]
nop
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x56c42f
or ebx, 0x80
jmp 0x56c42f
xor ebx, ebx
xor edx, edx
xor eax, eax
jmp 0x56c42f
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x56c520
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0xc8]
jmp 0x56c3d0
mov byte [esp + 0x23], 1
mov edx, dword [esp + 0xb0]
mov eax, dword [edx]
call eax
mov byte [esp + 0x23], 0
call fcn.00578ed0
add esp, 0xb4
ret
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x8c], ecx
mov ebp, dword [ecx]
mov esi, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x34], edx
mov eax, dword [eax + 0xc]
lea ebx, [ebx + ebx*2]
mov ecx, dword [eax + ebx*4]
mov edx, dword [eax + ebx*4 + 4]
mov eax, dword [eax + ebx*4 + 8]
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
lea edx, [esp + 0x60]
mov eax, dword [esp + 0x34]
call eax
mov eax, dword [esp + 0x8c]
lea ecx, [eax + 0xc]
mov eax, dword [esp + 0x2c]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x4c]
mov eax, ebp
mov edx, dword [esp + 0x38]
cmp ebx, edx
jge 0x56c5ba
mov ebp, dword [eax + 0x10]
cmp ebx, ebp
jb 0x56c541
jmp 0x56c5db
mov byte [esp + 0x23], 1
mov edx, dword [esp + 0xb0]
mov eax, dword [edx]
call eax
mov byte [esp + 0x23], 0
call fcn.00578ed0
add esp, 0xb4
ret
mov eax, ebx
mov ecx, ebp
call fcn.0046ff60
mov dword [esp + 0x24], ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], edx
mov ecx, dword [esp + 0x90]
mov dword [esp], ecx
mov ebp, dword [esp + 0x8c]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x40]
mov dword [esp + 8], esi
mov edi, dword [esp + 0x30]
mov dword [esp + 0xc], edi
call fcn.004aa470
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x44]
mov dword [esp], ebp
mov ebp, dword [esp + 0x48]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
lea edx, [esp + 0x60]
call eax
mov eax, dword [esp + 0x30]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x3c]
cmp eax, 0x17
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x90]
mov esi, edx
mov dword [esp + 0x30], ecx
jne 0x56c680
mov edi, dword [esi + 4]
jmp 0x56c6ae
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
call fcn.004abac0
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x8c]
cmp ecx, edi
jge 0x56c6ff
mov dword [esp], ecx
call fcn.0040e720
mov eax, dword [esp + 4]
lea ecx, [0x5b2080]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0x58]
test edx, edx
je 0x56c6f4
movzx ebx, byte [edx + 0xf]
nop
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x56c5e4
or ebx, 0x80
jmp 0x56c5e4
xor ebx, ebx
xor edx, edx
xor eax, eax
jmp 0x56c5e4
mov byte [esp + 0x23], 1
mov edx, dword [esp + 0xb0]
mov eax, dword [edx]
call eax
mov byte [esp + 0x23], 0
call fcn.00578ed0
add esp, 0xb4
ret
call fcn.0046eae0
jmp fcn.0056bfc0