Function at 0x573c20
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 0x574310
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 0x5742ef
mov ecx, dword [esp + 0xd8]
test ecx, ecx
jg 0x574209
mov edx, dword [esp + 0xe0]
test byte [edx], al
lea esi, [edx + 0x10]
lea edi, [esp + 0xb4]
call fcn.0044d1fe
lea edi, [esp + 0xa0]
lea esi, [esp + 0xb4]
call fcn.0044d1fe
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa4]
mov ebp, ebx
shr ebx, 0x1f
shl ebx, 0x1f
test ebx, ebx
je 0x5741f2
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 0x5741eb
test ebp, 0x3fffffff
sete cl
test cl, cl
jne 0x5741cc
lea edi, [esp + 0x14]
mov dword [esp + 0x3c], edi
lea esi, [eax + 0x158]
call fcn.0044d1fe
mov edi, esp
lea esi, [esp + 0xb4]
call fcn.0044d1fe
call fcn.004a2980
movzx eax, byte [esp + 0x28]
test al, al
je 0x573dd5
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, [0x8f9310]
mov dword [esp], eax
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
call fcn.004077b0
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.0044d1fe
mov edi, esp
lea esi, [esp + 0xb4]
call fcn.0044d1fe
call fcn.004a2820
movzx eax, byte [esp + 0x28]
test al, al
jne 0x573d44
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 0x30]
test eax, eax
jne 0x573e1e
mov eax, 0x3d090
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0xd0]
cmp ecx, 1
jne 0x5741a5
mov edx, dword [esp + 0xd8]
test edx, edx
je 0x574152
mov ebx, dword [esp + 0xd4]
mov ebx, dword [ebx]
cmp ecx, 1
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], eax
jne 0x574142
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
call fcn.00576710
movzx eax, byte [esp + 4]
test al, al
jne 0x5740a7
jne 0x573fde
mov eax, dword [esp + 0xd0]
cmp eax, 1
jne 0x573fd2
mov eax, dword [esp + 0xcc]
movzx ecx, byte [eax + 0x1c0]
test cl, cl
je 0x573f63
movzx ecx, byte [eax + 0x1c1]
test cl, cl
je 0x573f63
movzx ecx, byte [eax + 0x1c0]
test cl, cl
je 0x573ed7
mov ecx, dword [eax + 0x1c4]
test ecx, ecx
jl 0x573ed7
mov edx, dword [esp + 0xd8]
dec edx
cmp edx, ecx
jg 0x573ef4
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, [0x8f9310]
mov dword [esp], eax
lea eax, [esp + 0x50]
mov dword [esp + 4], eax
call fcn.004077b0
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, [0x8f9310]
mov dword [esp], eax
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
call fcn.004077b0
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 0x573eb6
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.005764c0
movzx eax, byte [esp + 4]
test al, al
jne 0x574002
mov eax, dword [esp + 0xd0]
cmp eax, 1
jmp 0x573e8b
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00576780
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, [0x57b980]
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.00577d50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x574092
mov eax, dword [esp + 0xd0]
cmp eax, 1
jmp 0x573e8b
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.00574eb0
movzx eax, byte [esp + 4]
test al, al
jne 0x5740cc
movzx eax, byte [esp + 0x2f]
test al, al
jmp 0x573e7b
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, [0x8f9310]
mov dword [esp], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
call fcn.004077b0
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 0x573e5f
xor eax, eax
jmp 0x573e73
lea eax, [0x787c00]
mov dword [esp], eax
call fcn.00409dc0
mov edi, dword [esp + 4]
mov dword [edi + 4], 0x38
mov eax, dword [0xbc7270]
test eax, eax
jne 0x574198
lea eax, [0x7f25f1]
mov dword [edi], eax
lea eax, [0x8f8790]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], edi
add esp, 0xc8
ret
lea eax, [0x7f25f1]
call fcn.0044cc20
jmp 0x57417d
cmp ecx, 2
jne 0x5741b8
mov edx, dword [esp + 0xd8]
test edx, edx
jmp 0x573e3f
cmp ecx, 1
mov edx, dword [esp + 0xd8]
mov ebx, 0
jmp 0x573e51
call fcn.004a4f50
lea edi, [esp + 0xb4]
mov esi, esp
call fcn.0044d1fe
mov eax, dword [esp + 0xcc]
jmp 0x573d11
xor ecx, ecx
jmp 0x573d09
mov ebx, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov ebp, ecx
mov ecx, ebx
jmp 0x573cec
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.004021b0
movzx eax, byte [esp + 0x18]
test al, al
je 0x57425e
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xd8]
jmp 0x573c79
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, [0x8f9310]
mov dword [esp], eax
lea eax, [esp + 0x90]
mov dword [esp + 4], eax
call fcn.004077b0
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, [0x8f9390]
mov dword [esp + 0xe4], eax
lea eax, [0xbc70a8]
mov dword [esp + 0xe8], eax
add esp, 0xc8
ret
call fcn.0044b4c0
jmp fcn.00573c20