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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x48]
cmp eax, dword [ecx + 8]
jbe 0x565d60
sub esp, 0xc8
mov eax, 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x1a0]
test ecx, ecx
jg 0x565d3f
mov ecx, dword [esp + 0xd8]
test ecx, ecx
jg 0x565c59
mov edx, dword [esp + 0xe0]
test byte [edx], al
lea esi, [edx + 0x10]
lea edi, [esp + 0xb4]
call fcn.0044cf6e
lea edi, [esp + 0xa0]
lea esi, [esp + 0xb4]
call fcn.0044cf6e
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa4]
mov ebp, ebx
shr ebx, 0x1f
shl ebx, 0x1f
test ebx, ebx
je 0x565c42
shl ebp, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, ebp
mov ebp, ebx
shl ebx, 1
shr ebx, 0x1f
mov esi, ecx
shl ecx, 1
or ecx, ebx
mov ebx, ecx
add ecx, 0xd7b17f80
shr esi, 0x1f
add ebx, 0xd7b17f80
adc esi, 0xd
test esi, esi
sete bl
test ecx, ecx
sete cl
and ebx, ecx
test bl, bl
je 0x565c3b
test ebp, 0x3fffffff
sete cl
test cl, cl
jne 0x565c1c
lea edi, [esp + 0x14]
mov dword [esp + 0x3c], edi
lea esi, [eax + 0x158]
call fcn.0044cf6e
mov edi, esp
lea esi, [esp + 0xb4]
call fcn.0044cf6e
call fcn.0047b550
movzx eax, byte [esp + 0x28]
test al, al
je 0x565825
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 1
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
lea eax, [0x8b35d0]
mov dword [esp], eax
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
call fcn.00407630
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
add esp, 0xc8
ret
mov eax, dword [esp + 0xcc]
lea esi, [eax + 0x16c]
mov edi, dword [esp + 0x3c]
call fcn.0044cf6e
mov edi, esp
lea esi, [esp + 0xb4]
call fcn.0044cf6e
call fcn.0047b3f0
movzx eax, byte [esp + 0x28]
test al, al
jne 0x565794
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 0x30]
test eax, eax
jne 0x56586e
mov eax, 0x3d090
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0xd0]
cmp ecx, 1
jne 0x565bf5
mov edx, dword [esp + 0xd8]
test edx, edx
je 0x565ba2
mov ebx, dword [esp + 0xd4]
mov ebx, dword [ebx]
cmp ecx, 1
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], eax
jne 0x565b92
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
call fcn.00568f00
movzx eax, byte [esp + 4]
test al, al
jne 0x565af7
jne 0x565a2e
mov eax, dword [esp + 0xd0]
cmp eax, 1
jne 0x565a22
mov eax, dword [esp + 0xcc]
movzx ecx, byte [eax + 0x1c0]
test cl, cl
je 0x5659b3
movzx ecx, byte [eax + 0x1c1]
test cl, cl
je 0x5659b3
movzx ecx, byte [eax + 0x1c0]
test cl, cl
je 0x565927
mov ecx, dword [eax + 0x1c4]
test ecx, ecx
jl 0x565927
mov edx, dword [esp + 0xd8]
dec edx
cmp edx, ecx
jg 0x565944
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
add esp, 0xc8
ret
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 3
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
lea eax, [0x8b35d0]
mov dword [esp], eax
lea eax, [esp + 0x50]
mov dword [esp + 4], eax
call fcn.00407630
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], eax
add esp, 0xc8
ret
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
lea eax, [0x8b35d0]
mov dword [esp], eax
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
call fcn.00407630
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], eax
add esp, 0xc8
ret
mov eax, dword [esp + 0xcc]
jmp 0x565906
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00568cb0
movzx eax, byte [esp + 4]
test al, al
jne 0x565a52
mov eax, dword [esp + 0xd0]
cmp eax, 1
jmp 0x5658db
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00568f70
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
lea ebx, [0x56e170]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x44], ebx
lea ebp, [esp + 0x34]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x4c], ebp
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
lea eax, [esp + 0x40]
mov dword [esp + 0xc], eax
call fcn.0056a540
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x565ae2
mov eax, dword [esp + 0xd0]
cmp eax, 1
jmp 0x5658db
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], eax
add esp, 0xc8
ret
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00566f10
movzx eax, byte [esp + 4]
test al, al
jne 0x565b1c
movzx eax, byte [esp + 0x2f]
test al, al
jmp 0x5658cb
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 6
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
lea eax, [0x8b35d0]
mov dword [esp], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
call fcn.00407630
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], eax
add esp, 0xc8
ret
cmp ecx, 2
je 0x5658af
xor eax, eax
jmp 0x5658c3
lea eax, [0x7d00e0]
mov dword [esp], eax
call fcn.00409c40
mov edi, dword [esp + 4]
mov dword [edi + 4], 0x38
mov eax, dword [0xb92b90]
test eax, eax
jne 0x565be8
lea eax, [0x84e600]
mov dword [edi], eax
lea eax, [0x8b2890]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], edi
add esp, 0xc8
ret
lea eax, [0x84e600]
call fcn.0044c990
jmp 0x565bcd
cmp ecx, 2
jne 0x565c08
mov edx, dword [esp + 0xd8]
test edx, edx
jmp 0x56588f
cmp ecx, 1
mov edx, dword [esp + 0xd8]
mov ebx, 0
jmp 0x5658a1
call fcn.0047dac0
lea edi, [esp + 0xb4]
mov esi, esp
call fcn.0044cf6e
mov eax, dword [esp + 0xcc]
jmp 0x565761
xor ecx, ecx
jmp 0x565759
mov ebx, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov ebp, ecx
mov ecx, ebx
jmp 0x56573c
mov edx, dword [esp + 0xd4]
mov ebx, dword [edx + ecx*4 - 4]
mov ebp, dword [ebx + 0x38]
mov esi, dword [ebx + 0x34]
mov ebx, dword [ebx + 0x30]
mov edi, dword [eax + 0x24]
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call fcn.004021c0
movzx eax, byte [esp + 0x18]
test al, al
je 0x565cae
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xd8]
jmp 0x5656c9
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], 5
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
lea eax, [0x8b35d0]
mov dword [esp], eax
lea eax, [esp + 0x90]
mov dword [esp + 4], eax
call fcn.00407630
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
add esp, 0xc8
ret
lea eax, [0x8b3650]
mov dword [esp + 0xe4], eax
lea eax, [0xb9291c]
mov dword [esp + 0xe8], eax
add esp, 0xc8
ret
call fcn.0044b230
jmp fcn.00565670