Function at 0x566a20
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 0x567110
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 0x5670ef
mov ecx, dword [esp + 0xd8]
test ecx, ecx
jg 0x567009
mov edx, dword [esp + 0xe0]
test byte [edx], al
lea esi, [edx + 0x10]
lea edi, [esp + 0xb4]
call fcn.0044cfbe
lea edi, [esp + 0xa0]
lea esi, [esp + 0xb4]
call fcn.0044cfbe
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa4]
mov ebp, ebx
shr ebx, 0x1f
shl ebx, 0x1f
test ebx, ebx
je 0x566ff2
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 0x566feb
test ebp, 0x3fffffff
sete cl
test cl, cl
jne 0x566fcc
lea edi, [esp + 0x14]
mov dword [esp + 0x3c], edi
lea esi, [eax + 0x158]
call fcn.0044cfbe
mov edi, esp
lea esi, [esp + 0xb4]
call fcn.0044cfbe
call fcn.0047b960
movzx eax, byte [esp + 0x28]
test al, al
je 0x566bd5
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, [0x7fec40]
mov dword [esp], eax
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
call fcn.004076f0
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.0044cfbe
mov edi, esp
lea esi, [esp + 0xb4]
call fcn.0044cfbe
call fcn.0047b800
movzx eax, byte [esp + 0x28]
test al, al
jne 0x566b44
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 0x30]
test eax, eax
jne 0x566c1e
mov eax, 0x3d090
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0xd0]
cmp ecx, 1
jne 0x566fa5
mov edx, dword [esp + 0xd8]
test edx, edx
je 0x566f52
mov ebx, dword [esp + 0xd4]
mov ebx, dword [ebx]
cmp ecx, 1
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], eax
jne 0x566f42
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
call fcn.00569510
movzx eax, byte [esp + 4]
test al, al
jne 0x566ea7
jne 0x566dde
mov eax, dword [esp + 0xd0]
cmp eax, 1
jne 0x566dd2
mov eax, dword [esp + 0xcc]
movzx ecx, byte [eax + 0x1c0]
test cl, cl
je 0x566d63
movzx ecx, byte [eax + 0x1c1]
test cl, cl
je 0x566d63
movzx ecx, byte [eax + 0x1c0]
test cl, cl
je 0x566cd7
mov ecx, dword [eax + 0x1c4]
test ecx, ecx
jl 0x566cd7
mov edx, dword [esp + 0xd8]
dec edx
cmp edx, ecx
jg 0x566cf4
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, [0x7fec40]
mov dword [esp], eax
lea eax, [esp + 0x50]
mov dword [esp + 4], eax
call fcn.004076f0
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, [0x7fec40]
mov dword [esp], eax
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
call fcn.004076f0
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 0x566cb6
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.005692c0
movzx eax, byte [esp + 4]
test al, al
jne 0x566e02
mov eax, dword [esp + 0xd0]
cmp eax, 1
jmp 0x566c8b
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00569580
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, [0x56e780]
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.0056ab50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x566e92
mov eax, dword [esp + 0xd0]
cmp eax, 1
jmp 0x566c8b
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.00567cb0
movzx eax, byte [esp + 4]
test al, al
jne 0x566ecc
movzx eax, byte [esp + 0x2f]
test al, al
jmp 0x566c7b
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, [0x7fec40]
mov dword [esp], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
call fcn.004076f0
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 0x566c5f
xor eax, eax
jmp 0x566c73
lea eax, [0x7436e0]
mov dword [esp], eax
call fcn.00409d00
mov edi, dword [esp + 4]
mov dword [edi + 4], 0x38
mov eax, dword [0xa8f2d0]
test eax, eax
jne 0x566f98
lea eax, [0x7a8831]
mov dword [edi], eax
lea eax, [0x7fe200]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], edi
add esp, 0xc8
ret
lea eax, [0x7a8831]
call fcn.0044c9e0
jmp 0x566f7d
cmp ecx, 2
jne 0x566fb8
mov edx, dword [esp + 0xd8]
test edx, edx
jmp 0x566c3f
cmp ecx, 1
mov edx, dword [esp + 0xd8]
mov ebx, 0
jmp 0x566c51
call fcn.0047df30
lea edi, [esp + 0xb4]
mov esi, esp
call fcn.0044cfbe
mov eax, dword [esp + 0xcc]
jmp 0x566b11
xor ecx, ecx
jmp 0x566b09
mov ebx, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov ebp, ecx
mov ecx, ebx
jmp 0x566aec
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.00402190
movzx eax, byte [esp + 0x18]
test al, al
je 0x56705e
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xd8]
jmp 0x566a79
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, [0x7fec40]
mov dword [esp], eax
lea eax, [esp + 0x90]
mov dword [esp + 4], eax
call fcn.004076f0
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, [0x7fecc0]
mov dword [esp + 0xe4], eax
lea eax, [0xa8f0d8]
mov dword [esp + 0xe8], eax
add esp, 0xc8
ret
call fcn.0044b280
jmp fcn.00566a20