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

Disassembly:
sub esp, 0x38
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.00514620
mov ecx, eax
mov eax, dword [esp + 0x50]
mov edi, edx
cdq
add ecx, eax
adc edi, edx
xor eax, eax
add ecx, 4
adc edi, eax
mov dword [esp + 0x30], ecx
mov ebx, ecx
mov ebp, edi
mov ecx, esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], ebp
call fcn.00514620
cmp edx, edi
jg 0x57d161
jl 0x57cc77
cmp eax, ebx
jae 0x57d161
push 1
push 0x20
mov ecx, esi
call fcn.00514640
cmp eax, 1
jne 0x57cf4f
test edx, edx
jne 0x57cf4f
mov ecx, esi
call fcn.00514620
push 0
push 0x20
mov ecx, esi
mov ebx, eax
mov edi, edx
call fcn.00514640
push 0
push 8
mov ecx, esi
call fcn.00514640
mov ecx, dword [esp + 0x18]
or ecx, dword [esp + 0x1c]
je 0x57ccde
mov edx, dword [esp + 0x10]
or edx, dword [esp + 0x14]
jne 0x57ccde
mov ecx, ebx
sub ecx, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
mov ecx, edi
sbb ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
jmp 0x57cd06
mov ecx, dword [esp + 0x28]
or ecx, dword [esp + 0x2c]
je 0x57cd06
mov edx, dword [esp + 0x20]
or edx, dword [esp + 0x24]
jne 0x57cd06
mov ecx, ebx
sub ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
mov ecx, edi
sbb ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], ecx
mov cl, al
and cl, 0x9f
cmp cl, 7
jne 0x57cecb
test al, 0x60
je 0x57cecb
push 0
push 8
mov ecx, esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], edi
call fcn.00514640
mov ebp, dword [esp + 0x4c]
push 0
push 8
mov ecx, esi
mov byte [ebp], al
call fcn.00514640
push 0
push 8
mov ecx, esi
call fcn.00514640
mov ecx, esi
mov byte [ebp + 1], al
call fcn.00514750
cmp byte [ebp], 0x64
jb 0x57ce00
mov ecx, esi
call fcn.00514750
cmp eax, 3
jne 0x57cd7a
test edx, edx
jne 0x57cd7a
push edx
push 1
mov ecx, esi
call fcn.00514640
mov ecx, esi
call fcn.00514750
mov ecx, esi
call fcn.00514750
push 0
push 1
mov ecx, esi
call fcn.00514640
push 0
push 1
mov ecx, esi
call fcn.00514640
or eax, edx
je 0x57ce00
xor edi, edi
mov dword [esp + 0x50], edi
push 0
push 1
mov ecx, esi
call fcn.00514640
or eax, edx
je 0x57cdf4
xor ebx, ebx
xor ebp, ebp
cmp edi, 6
setge bl
lea edi, [ebp + 8]
sub ebx, 1
and ebx, 0xffffffd0
add ebx, 0x40
test ebx, ebx
jle 0x57cdec
test edi, edi
je 0x57cdec
mov ecx, esi
call fcn.005147a0
add eax, edi
and eax, 0xff
add ebp, 1
cmp ebp, ebx
mov edi, eax
jl 0x57cdd1
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 0x4c]
add edi, 1
cmp edi, 8
mov dword [esp + 0x50], edi
jl 0x57cda8
mov ecx, esi
call fcn.00514750
mov ecx, esi
call fcn.00514750
mov ecx, eax
or ecx, edx
jne 0x57ce1d
mov ecx, esi
call fcn.00514750
jmp 0x57ce6f
cmp eax, 1
jne 0x57ce6f
test edx, edx
jne 0x57ce6f
push edx
push eax
mov ecx, esi
call fcn.00514640
mov ecx, esi
call fcn.005147a0
mov ecx, esi
call fcn.005147a0
mov ecx, esi
call fcn.00514750
mov edi, edx
xor ebx, ebx
test edi, edi
mov ebp, eax
jb 0x57ce6b
ja 0x57ce54
test ebp, ebp
jbe 0x57ce6b
mov ecx, esi
call fcn.005147a0
add ebx, 1
mov eax, ebx
cdq
cmp edx, edi
jb 0x57ce54
ja 0x57ce6b
cmp eax, ebp
jb 0x57ce54
mov ebp, dword [esp + 0x4c]
mov ecx, esi
call fcn.00514750
push 0
push 1
mov ecx, esi
call fcn.00514640
mov ecx, esi
call fcn.00514750
mov ecx, esi
mov edi, eax
mov dword [esp + 0x3c], edx
call fcn.00514750
push 0
push 1
mov ecx, esi
mov ebx, eax
mov dword [esp + 0x44], edx
call fcn.00514640
movzx edx, al
mov eax, 2
sub eax, edx
add ebx, 1
imul eax, ebx
add edi, 1
shl edi, 4
shl eax, 4
mov dword [ebp + 2], edi
mov dword [ebp + 6], eax
mov ebp, dword [esp + 0x34]
jmp 0x57cedc
cmp cl, 8
jne 0x57cedc
test al, 0x60
je 0x57cedc
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], edi
mov ecx, esi
call fcn.00514700
mov ebx, dword [esp + 0x30]
mov ecx, esi
mov edi, ebp
call fcn.00514620
cmp edx, edi
jg 0x57cf30
jl 0x57cf00
cmp eax, ebx
jae 0x57cf30
lea ebx, [ebx]
push 1
push 0x20
mov ecx, esi
call fcn.00514640
cmp eax, 1
jne 0x57cf14
test edx, edx
je 0x57cf30
push 0
push 8
mov ecx, esi
call fcn.00514640
mov ecx, esi
call fcn.00514620
cmp edx, edi
jl 0x57cf00
jg 0x57cf30
cmp eax, ebx
jb 0x57cf00
mov ecx, esi
call fcn.00514620
mov ecx, ebp
cmp edx, ecx
jl 0x57cc77
jg 0x57cf4f
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jb 0x57cc77
mov ecx, dword [esp + 0x18]
or ecx, dword [esp + 0x1c]
je 0x57d161
mov edx, dword [esp + 0x10]
or edx, dword [esp + 0x14]
je 0x57d161
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x2c]
je 0x57d161
mov ecx, dword [esp + 0x20]
or ecx, dword [esp + 0x24]
je 0x57d161
mov ebp, dword [esp + 0x54]
test ebp, ebp
je 0x57d155
mov ecx, dword [0x6144d4]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov dword [ebp], ecx
lea ebx, [edx + eax - 4]
mov edx, dword [0x6144d8]
mov dword [ebp + 4], edx
mov eax, dword [0x6144dc]
mov dword [ebp + 8], eax
mov ecx, dword [0x6144e0]
mov dword [ebp + 0xc], ecx
mov edx, 0x31435641
mov dword [ebp + 0x10], edx
mov word [esp + 0x3c], 0
mov word [esp + 0x3e], 0x10
mov edx, dword [esp + 0x3c]
mov dword [ebp + 0x14], edx
mov eax, 0xaa000080
mov dword [ebp + 0x18], eax
mov ecx, 0x719b3800
mov dword [ebp + 0x1c], ecx
mov eax, dword [0x6149e4]
mov dword [ebp + 0x2c], eax
mov ecx, dword [0x6149e8]
mov dword [ebp + 0x30], ecx
mov edx, dword [0x6149ec]
mov dword [ebp + 0x34], edx
mov eax, dword [0x6149f0]
mov dword [esp + 0x50], ebx
add ebx, 0x84
push ebx
mov dword [ebp + 0x38], eax
mov dword [esp + 0x58], ebx
call fcn.0059b05a
push ebx
mov edi, eax
push 0
push edi
call fcn.005c0060
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 2]
mov dword [edi + 0x38], ecx
mov edx, dword [eax + 6]
mov dword [edi + 0x3c], edx
mov dword [edi + 0x48], 0x28
mov ecx, dword [eax + 2]
mov dword [edi + 0x4c], ecx
mov edx, dword [eax + 6]
mov dword [edi + 0x50], edx
mov dword [edi + 0x58], 0x31435641
movzx ecx, byte [eax]
mov dword [edi + 0x78], ecx
mov ecx, dword [esp + 0x24]
mov dword [edi + 0x80], 4
movzx edx, byte [eax + 1]
mov eax, dword [esp + 0x60]
mov dword [edi + 0x74], eax
mov eax, dword [esp + 0x20]
add esp, 0x10
sub eax, 4
sbb ecx, 0
mov dword [edi + 0x7c], edx
mov dword [esp + 0x34], ecx
mov edx, ecx
mov cl, 8
lea ebx, [edi + 0x84]
mov dword [esp + 0x30], eax
call fcn.005c76c0
mov cl, byte [esp + 0x10]
mov byte [ebx], al
mov eax, dword [esp + 0x18]
add ebx, 1
sub cl, 4
mov byte [ebx], cl
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi]
add ebx, 1
add eax, 4
adc ecx, 0
push ecx
push eax
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
push ecx
push edx
push ebx
mov ecx, esi
call fcn.00514720
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
lea ebx, [ebx + eax - 4]
mov eax, dword [esp + 0x20]
sub eax, 4
sbb ecx, 0
mov dword [esp + 0x34], ecx
mov edx, ecx
mov cl, 8
mov dword [esp + 0x30], eax
call fcn.005c76c0
mov ecx, dword [esp + 0x2c]
mov byte [ebx], al
mov al, byte [esp + 0x20]
sub al, 4
mov byte [ebx + 1], al
mov eax, dword [esp + 0x28]
mov edx, dword [esi]
add ebx, 1
add eax, 4
adc ecx, 0
push ecx
push eax
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
push ecx
push edx
add ebx, 1
push ebx
mov ecx, esi
call fcn.00514720
mov eax, dword [esp + 0x54]
push eax
push edi
mov ecx, ebp
call fcn.00486430
push edi
call fcn.0059b05f
add esp, 4
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x38
ret 0xc
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x38
ret 0xc