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

Disassembly:
sub esp, 0xfc
push ebx
push ebp
push esi
mov esi, dword [esp + 0x114]
push edi
mov edi, ecx
mov ecx, dword [esp + 0x110]
or eax, 0xffffffff
lea ebx, [ecx + esi]
lea esi, [ebx - 1]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x11c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], eax
xor eax, eax
test esi, 0xffff5a6f
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x28], eax
mov ebp, edi
je 0x57e158
pop edi
pop esi
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0xfc
ret 0x18
cmp edi, eax
je 0x57e7dd
cmp ecx, eax
je 0x57e7dd
cmp dword [esp + 0x120], eax
mov ecx, dword [esp + 0x124]
jne 0x57e180
cmp ecx, eax
jg 0x57e7dd
cmp ecx, eax
jge 0x57e196
pop edi
pop esi
pop ebp
mov eax, 0xfffffff1
pop ebx
add esp, 0xfc
ret 0x18
cmp edx, eax
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x54], 0x989680
mov dword [esp + 0x58], 0x3e8
mov dword [esp + 0xb4], eax
mov dword [esp + 0x14], ecx
je 0x57e211
mov ecx, dword [edx]
test cl, 1
mov dword [esp + 0x10], ecx
je 0x57e1d2
mov ecx, dword [edx + 4]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
test cl, 2
je 0x57e1e2
mov ecx, dword [edx + 8]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x10]
test cl, 0x10
je 0x57e1f2
mov ecx, dword [edx + 0x14]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x10]
test cl, 4
je 0x57e205
mov ecx, dword [edx + 0xc]
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x10]
test cl, 8
je 0x57e211
mov edx, dword [edx + 0x10]
mov dword [esp + 0x14], edx
cmp dword [esp + 0x14], eax
jne 0x57e21f
mov dword [esp + 0x14], 0x5b00b0
cmp dword [edi], 0x50435245
je 0x57e26d
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0xbc]
push eax
push ecx
lea edx, [esp + 0xec]
mov ecx, edi
call fcn.00582760
mov ebp, eax
test ebp, ebp
jne 0x57e25a
pop edi
pop esi
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0xfc
ret 0x18
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x57e26d
lea edx, [esp + 0xbc]
mov dword [esp + 0x1c], edx
mov eax, dword [ebp + 8]
movzx edx, word [ebp + 0x1a]
mov ecx, eax
or ecx, esi
shr ecx, 4
and ecx, 1
mov dword [esp + 0x38], ecx
mov ecx, eax
shr ecx, 0x1c
and ecx, 1
mov dword [esp + 0x30], ecx
movzx ecx, word [ebp + 0x1c]
imul ecx, edx
mov edx, dword [esp + 0x114]
shr eax, 0x12
and eax, 1
mov dword [esp + 0x34], eax
movzx eax, word [ebp + 0x18]
add edi, ecx
mov ecx, dword [esp + 0x118]
add eax, edi
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x94], eax
add eax, edx
mov dword [esp + 0x98], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xac], ecx
mov eax, dword [ebp + 8]
shr eax, 5
and eax, 1
mov dword [esp + 0x80], eax
mov ecx, dword [ebp + 8]
mov eax, esi
shr eax, 8
shr ecx, 0xb
and eax, 1
and ecx, 1
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
mov eax, 0
mov edx, esi
mov ecx, esi
mov dword [esp + 0x8c], eax
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x14]
shr edx, 7
shr ecx, 0xa
and edx, 1
and ecx, 1
shr esi, 0xf
mov dword [esp + 0x68], eax
and esi, 1
lea eax, [eax + 0x340]
mov dword [esp + 0x74], edx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], esi
mov dword [esp + 0x6c], eax
je 0x57e371
test dword [ebp + 8], 0x4000000
je 0x57e371
pop edi
pop esi
pop ebp
mov eax, 0xfffffff3
pop ebx
add esp, 0xfc
ret 0x18
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x124]
and eax, 7
mov dword [esp + 0x4c], eax
mov eax, edi
cdq
mov ecx, 3
idiv ecx
mov ax, word [ebp + 0x12]
sub edi, edx
test ax, ax
jbe 0x57e3e7
movzx ecx, ax
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp ecx, edx
jl 0x57e3e7
lea edi, [ecx + ecx*2 + 3]
lea ecx, [edi*4]
push ecx
call dword [0x5c0a48]
mov esi, eax
add esp, 4
test esi, esi
mov dword [esp + 0x5c], esi
jne 0x57e3dd
pop edi
pop esi
pop ebp
mov eax, 0xfffffffa
pop ebx
add esp, 0xfc
ret 0x18
mov dword [esp + 0x2c], 1
jmp 0x57e3f2
mov esi, dword [esp + 0x120]
mov dword [esp + 0x5c], esi
lea ecx, [edi + edi]
mov eax, 0x55555556
imul ecx
mov ecx, dword [esp + 0x124]
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edx
mov dword [esp + 0x70], 0
mov dword [esp + 0xa8], 0xffffffff
movzx eax, word [ebp + 0x10]
lea eax, [eax + eax + 2]
cmp eax, ecx
mov dword [esp + 0x20], eax
jle 0x57e439
mov dword [esp + 0x20], edi
test esi, esi
je 0x57e471
mov eax, dword [esp + 0x20]
cdq
sub eax, edx
sar eax, 1
mov edx, 1
lea ecx, [esi + edi*4]
sub edx, eax
lea eax, [ecx + edx*4]
sub ecx, 4
cmp ecx, eax
jb 0x57e471
lea ebx, [ebx]
mov dword [ecx], 0xffffffff
sub ecx, 4
cmp ecx, eax
jae 0x57e460
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x57e4c9
test dword [ebp + 8], 0x40000000
je 0x57e4ac
movzx eax, word [ebp + 0x14]
mov ecx, eax
and ecx, 0xff
shr eax, 8
and eax, 1
mov dword [esp + 0x18], ecx
mov dword [esp + 0x40], eax
je 0x57e4c9
mov eax, dword [esp + 0x68]
movzx ecx, byte [eax + ecx]
mov dword [esp + 0x18], ecx
jmp 0x57e4c9
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x57e4c9
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x57e4c9
test byte [eax + 4], 1
je 0x57e4c9
add eax, 8
mov dword [esp + 0x28], eax
test dword [ebp + 8], 0x20000000
je 0x57e4fc
movzx eax, word [ebp + 0x16]
mov edx, dword [esp + 0x14]
mov ecx, eax
and ecx, 0xff
shr eax, 8
and eax, 1
mov dword [esp + 0x3c], eax
movzx eax, byte [edx + ecx + 0x100]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], eax
mov ebp, dword [esp + 0x10]
jmp 0x57e506
mov esi, dword [esp + 0x5c]
test esi, esi
mov dword [esp + 0x14], ebp
je 0x57e52b
mov ecx, dword [esp + 0x20]
lea ecx, [esi + ecx*4]
cmp esi, ecx
jae 0x57e52b
sub ecx, esi
dec ecx
shr ecx, 2
inc ecx
mov edi, esi
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x57e550
cmp ebx, ebp
mov eax, ebx
jae 0x57e54a
lea esp, [esp]
cmp byte [eax], 0xa
je 0x57e54a
inc eax
cmp eax, ebp
jb 0x57e540
mov ebp, eax
mov dword [esp + 0x10], ebp
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x57e5a0
mov eax, dword [esp + 0x40]
test eax, eax
je 0x57e58c
cmp ebx, ebp
jae 0x57e606
jmp 0x57e570
movzx edx, byte [ebx]
mov eax, dword [esp + 0x68]
movzx ecx, byte [edx + eax]
cmp ecx, dword [esp + 0x18]
je 0x57e606
inc ebx
cmp ebx, ebp
jb 0x57e570
jmp 0x57e606
cmp ebx, ebp
jae 0x57e606
movzx edx, byte [ebx]
cmp edx, dword [esp + 0x18]
je 0x57e606
inc ebx
cmp ebx, ebp
jb 0x57e590
jmp 0x57e606
mov eax, dword [esp + 0x30]
test eax, eax
je 0x57e5cd
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x94]
add ecx, eax
cmp ebx, ecx
jbe 0x57e606
cmp ebx, ebp
jae 0x57e606
cmp byte [ebx - 1], 0xa
je 0x57e606
inc ebx
cmp ebx, ebp
jb 0x57e5c0
jmp 0x57e606
mov eax, dword [esp + 0x28]
test eax, eax
je 0x57e606
cmp ebx, ebp
jae 0x57e606
lea esp, [esp]
movzx eax, byte [ebx]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
mov ecx, dword [esp + 0x28]
shr eax, 3
mov al, byte [eax + ecx]
test al, dl
jne 0x57e606
mov eax, dword [esp + 0x10]
inc ebx
cmp ebx, eax
jb 0x57e5e0
mov edx, dword [esp + 0x24]
test edx, edx
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x10], ebp
jl 0x57e689
mov ecx, ebp
sub ecx, ebx
cmp ecx, 0x3e8
jge 0x57e689
mov eax, dword [esp + 0x88]
test eax, eax
jne 0x57e689
mov ecx, dword [esp + 0x18]
xor eax, eax
test ecx, ecx
mov ecx, dword [esp + 0x44]
setge al
add eax, ebx
cmp eax, ecx
jbe 0x57e689
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x57e66e
cmp eax, ebp
jae 0x57e6de
movzx ecx, byte [eax]
inc eax
cmp ecx, edx
je 0x57e680
cmp ecx, dword [esp + 0x48]
je 0x57e680
cmp eax, ebp
jae 0x57e6de
mov edx, dword [esp + 0x24]
jmp 0x57e652
cmp eax, ebp
jae 0x57e6de
movzx ecx, byte [eax]
inc eax
cmp ecx, edx
je 0x57e680
cmp eax, ebp
jb 0x57e672
jmp 0x57e6de
dec eax
cmp eax, ebp
jae 0x57e6de
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x90]
push 0
push 2
push 0
push edx
lea eax, [esp + 0x60]
push eax
push 2
push ecx
push ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0x70], 0
call fcn.0057b650
test eax, eax
jne 0x57e728
mov eax, dword [esp + 0x34]
test eax, eax
je 0x57e6c9
cmp byte [ebx], 0xa
je 0x57e6da
mov eax, dword [esp + 0x38]
inc ebx
test eax, eax
jne 0x57e6da
cmp ebx, ebp
jbe 0x57e502
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x57e6f0
push esi
call dword [0x5c0a4c]
add esp, 4
mov eax, dword [esp + 0x88]
test eax, eax
je 0x57e718
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x57e718
pop edi
pop esi
pop ebp
mov eax, 0xfffffff4
pop ebx
add esp, 0xfc
ret 0x18
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0xfc
ret 0x18
cmp eax, 1
jne 0x57e7e2
mov eax, dword [esp + 0x2c]
test eax, eax
mov ebp, dword [esp + 0x124]
je 0x57e786
cmp ebp, 4
mov eax, dword [esp + 0x5c]
jl 0x57e76b
mov edi, dword [esp + 0x120]
lea ecx, [ebp*4 - 8]
mov edx, ecx
shr ecx, 2
add edi, 8
lea esi, [eax + 8]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [esp + 0xa4], ebp
jle 0x57e77c
mov dword [esp + 0x70], 1
push eax
call dword [0x5c0a4c]
add esp, 4
mov eax, dword [esp + 0x70]
test eax, eax
je 0x57e792
xor eax, eax
jmp 0x57e79e
mov eax, dword [esp + 0xa4]
cdq
sub eax, edx
sar eax, 1
cmp ebp, 2
jge 0x57e7b2
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret 0x18
mov ecx, dword [esp + 0x94]
mov esi, dword [esp + 0xa0]
mov edx, dword [esp + 0x120]
sub ebx, ecx
sub esi, ecx
pop edi
mov dword [edx + 4], esi
pop esi
pop ebp
mov dword [edx], ebx
pop ebx
add esp, 0xfc
ret 0x18
mov eax, 0xfffffffe
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xfc
ret 0x18