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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x30]
cmp eax, dword [ecx + 8]
jbe 0x57d57a
sub esp, 0xb0
mov ecx, dword [esp + 0xbc]
test ecx, ecx
jbe 0x57d572
mov edx, dword [esp + 0xb8]
movzx ebx, byte [edx]
cmp ecx, 5
jb 0x57d568
mov byte [esp + 0x4b], bl
mov eax, dword [esp + 0xc0]
lea ebp, [eax - 5]
mov dword [esp + 0x6c], ebp
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 5
add ebp, edx
mov dword [esp + 0x9c], ebp
add ecx, 0xfffffffb
mov dword [esp + 0x5c], ecx
mov edi, dword [esp + 0xb4]
cmp word [edi + 0x10], 0x304
jne 0x57cb2a
cmp bl, 0x14
je 0x57d4e1
mov dword [esp], edi
call fcn.0057c840
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xb4]
mov edx, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x18]
test edx, edx
je 0x57d4b5
je 0x57d550
mov dword [esp + 0x68], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0xac], ebx
lea eax, [0x63b600]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.004090f0
mov eax, dword [esp + 0xc]
movzx ecx, byte [esp + 0x14]
mov edx, dword [esp + 0x10]
test cl, cl
je 0x57cffc
mov eax, dword [eax + 0x10]
mov dword [esp], edx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x5c]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ebx
call eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x9c]
xor ebx, ebx
mov ebp, 0xffffffff
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x98], edx
xchg ebp, eax
mov byte [esp + 0x4a], al
xchg ebp, eax
mov dword [esp + 0x64], ebx
mov edx, dword [esp + 0xb4]
cmp word [edx + 0x10], 0x304
jne 0x57cff0
movzx edx, byte [esp + 0x4b]
cmp dl, 0x17
jne 0x57cf9e
cmp esi, 0x4001
jg 0x57cf4c
lea ebx, [esi - 1]
jmp 0x57cc2a
dec ebx
movzx ebp, byte [esp + 0x4a]
test ebx, ebx
jl 0x57cf43
cmp ebx, esi
jae 0x57d52f
movzx ebp, byte [edi + ebx]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x57cc9a
test ebx, ebx
jne 0x57cc24
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov byte [esp + 0xd0], 0
lea eax, [0x6c87d0]
mov dword [esp + 0xd4], eax
mov eax, 0xa
lea ecx, [0x7f2640]
lea eax, [ecx + eax*8]
mov dword [esp + 0xd8], eax
add esp, 0xb0
ret
mov edx, dword [esp + 0x98]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x98], edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], esi
xchg ebp, eax
mov byte [esp + 0x49], al
xchg ebp, eax
mov edx, dword [esp + 0xb4]
mov eax, dword [edx + 0x1c]
mov esi, dword [edx + 0x20]
test eax, eax
jne 0x57cd33
mov eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x94], edi
mov dword [esp], edx
call fcn.0057c7d0
mov eax, dword [esp + 0x94]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xcc], eax
movzx eax, byte [esp + 0x49]
mov byte [esp + 0xd0], al
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
add esp, 0xb0
ret
mov dword [esp + 0x5c], ecx
mov eax, dword [eax + 0x14]
mov dword [esp], esi
call eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x5c]
cmp ecx, eax
jl 0x57cef1
mov ebx, ecx
sub ecx, eax
mov ebp, dword [esp + 0x64]
sub ecx, ebp
mov ebp, ecx
shr ecx, 0x1f
lea esi, [ecx - 1]
and esi, ebp
mov ebp, esi
sar esi, 8
mov edi, dword [esp + 0xb8]
xchg esi, eax
mov byte [edi + 3], al
xchg esi, eax
xchg ebp, eax
mov byte [edi + 4], al
xchg ebp, eax
lea ecx, [ebp + eax]
mov edx, dword [esp + 0x60]
cmp edx, ecx
jb 0x57d52a
cmp ebp, ecx
ja 0x57d523
sub edx, ebp
mov dword [esp + 0x50], edx
neg edx
sar edx, 0x1f
and edx, ebp
mov esi, dword [esp + 0x98]
add edx, esi
cmp ebx, ecx
jb 0x57d51a
mov dword [esp + 0x4c], eax
mov dword [esp + 0x80], ebp
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0xb4]
mov edx, dword [eax + 0x1c]
mov ebx, dword [eax + 0x20]
mov edx, dword [edx + 0x10]
mov dword [esp], ebx
lea ebx, [eax + 0x24]
mov dword [esp + 4], ebx
mov dword [esp + 8], 8
mov dword [esp + 0xc], 8
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], 5
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebp
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x24], ebx
sub ebx, ecx
mov dword [esp + 0x7c], ebx
neg ebx
sar ebx, 0x1f
and ebx, ecx
add ebx, esi
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x5c]
sub ebx, ecx
mov dword [esp + 0x2c], ebx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x30], ecx
call edx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov eax, dword [esp + 0x90]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x14], eax
call fcn.00506c30
movzx eax, byte [esp + 0x4a]
movzx eax, al
and eax, dword [esp + 0x18]
cmp eax, 1
jne 0x57ce9f
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 0x98]
jmp 0x57cccf
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov byte [esp + 0xd0], 0
lea eax, [0x6c87d0]
mov dword [esp + 0xd4], eax
mov eax, 0x14
lea ecx, [0x7f2640]
lea eax, [ecx + eax*8]
mov dword [esp + 0xd8], eax
add esp, 0xb0
ret
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov byte [esp + 0xd0], 0
lea eax, [0x6c87d0]
mov dword [esp + 0xd4], eax
mov eax, 0x14
lea ecx, [0x7f2640]
lea eax, [ecx + eax*8]
mov dword [esp + 0xd8], eax
add esp, 0xb0
ret
mov ebp, edx
mov ebx, esi
jmp 0x57cc9a
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov byte [esp + 0xd0], 0
lea eax, [0x6c87d0]
mov dword [esp + 0xd4], eax
mov eax, 0x16
lea ecx, [0x7f2640]
lea eax, [ecx + eax*8]
mov dword [esp + 0xd8], eax
add esp, 0xb0
ret
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov byte [esp + 0xd0], 0
lea eax, [0x6c87d0]
mov dword [esp + 0xd4], eax
mov eax, 0xa
lea ecx, [0x7f2640]
lea eax, [ecx + eax*8]
mov dword [esp + 0xd8], eax
add esp, 0xb0
ret
movzx ebp, byte [esp + 0x4b]
mov ebx, esi
jmp 0x57cc9a
lea eax, [0x64ea20]
mov dword [esp], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xac]
mov dword [esp + 8], ecx
call fcn.004090f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + 0x14]
test dl, dl
jne 0x57d244
lea eax, [0x644480]
mov dword [esp], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 8], eax
call fcn.004090f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + 0x14]
test dl, dl
je 0x57d550
mov dword [esp + 0x74], eax
mov dword [esp + 0xa0], ecx
mov edx, dword [eax + 0x10]
mov dword [esp], ecx
call edx
mov eax, dword [esp + 0xb4]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 4]
mov dword [esp + 0x78], edx
mov ebx, dword [eax + 0x20]
mov ecx, dword [ecx + 0x14]
mov dword [esp], ebx
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x57d544
lea ebx, [eax + 1]
mov edx, eax
mov eax, ebx
mov ebx, edx
cmp ecx, 0xffffffff
je 0x57d0c1
cdq
idiv ecx
jmp 0x57d0c3
xor edx, edx
mov eax, ecx
sub eax, edx
cmp ecx, 0xffffffff
je 0x57d0d1
cdq
idiv ecx
jmp 0x57d0d3
xor edx, edx
add ebx, edx
mov ebp, dword [esp + 0x68]
lea ebx, [ebx + ebp + 1]
mov eax, dword [esp + 0x5c]
cdq
idiv ecx
test edx, edx
jne 0x57d1f2
mov eax, dword [esp + 0x5c]
cmp eax, ebx
jl 0x57d1f2
test ebp, ebp
jle 0x57d1e0
mov edx, dword [esp + 0x6c]
cmp edx, ebp
jb 0x57d53d
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 0x18]
mov ebx, dword [esp + 0xa0]
mov dword [esp], ebx
mov esi, dword [esp + 0x9c]
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
call ecx
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x68]
cmp ecx, eax
jb 0x57d538
mov edx, dword [esp + 0x6c]
sub edx, eax
sub ecx, eax
mov ebx, edx
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0x9c]
add eax, edx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0x74]
mov edx, dword [edx + 0x14]
mov ebp, dword [esp + 0xa0]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
call edx
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x60]
mov dword [esp + 8], edx
call fcn.0057c980
mov ebx, dword [esp + 0xc]
movzx ebp, byte [esp + 0x10]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x98]
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x60]
jmp 0x57cbe1
mov ebx, dword [esp + 0x6c]
mov ecx, eax
mov eax, dword [esp + 0x9c]
jmp 0x57d15c
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov byte [esp + 0xd0], 0
lea eax, [0x6c87d0]
mov dword [esp + 0xd4], eax
mov eax, 0x14
lea ecx, [0x7f2640]
lea eax, [ecx + eax*8]
mov dword [esp + 0xd8], eax
add esp, 0xb0
ret
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x68]
cmp ebx, ebp
jl 0x57d463
mov edx, dword [esp + 0x6c]
cmp edx, ebp
jb 0x57d549
test ebp, ebp
jne 0x57d450
mov esi, dword [esp + 0xb4]
lea edi, [esi + 0x24]
mov dword [esp + 0x88], eax
mov eax, 8
mov dword [esp + 0x6c], eax
mov eax, 8
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xac], edi
sub edx, ebp
mov dword [esp + 0x60], edx
neg edx
sar edx, 0x1f
and edx, ebp
mov edi, dword [esp + 0x9c]
add edx, edi
mov dword [esp + 0x98], edx
sub ebx, ebp
mov dword [esp + 0x5c], ebx
cmp word [esi + 0x10], 0x304
jne 0x57d3c8
mov ebp, dword [esp + 0xc0]
mov edi, 5
mov ebp, dword [esp + 0xb8]
mov dword [esp + 0xa8], ebp
mov ebp, dword [esp + 0xc0]
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0xac]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x68]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebp
call eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
test ebx, ebx
jne 0x57d376
xor ebx, ebx
mov ebp, 0xffffffff
mov esi, ecx
mov edi, eax
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x98]
jmp 0x57cbe1
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov byte [esp + 0xd0], 0
lea eax, [0x6c87d0]
mov dword [esp + 0xd4], eax
mov eax, 0x14
lea ecx, [0x7f2640]
lea eax, [ecx + eax*8]
mov dword [esp + 0xd8], eax
add esp, 0xb0
ret
mov ebp, dword [esi + 0x28]
mov edi, dword [esi + 0x24]
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], ebp
lea ebp, [esi + 0x34]
mov edi, dword [esp + 0xb8]
cmp ebp, edi
je 0x57d3f2
movzx ebp, word [edi]
movzx edi, byte [edi + 2]
mov word [esi + 0x34], bp
xchg edi, eax
mov byte [esi + 0x36], al
xchg edi, eax
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x70], eax
mov edx, dword [eax + 0x18]
mov dword [esp], ecx
call edx
mov eax, dword [esp + 4]
mov ebx, dword [esp + 0x5c]
sub ebx, eax
mov eax, ebx
sar ebx, 8
mov edx, dword [esp + 0xb4]
mov byte [edx + 0x37], bl
mov byte [edx + 0x38], al
lea eax, [edx + 0x2c]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x5c]
mov ebp, 0xd
mov edi, 0xd
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x70]
jmp 0x57d2e9
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0x9c]
jmp 0x57d292
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov byte [esp + 0xd0], 0
lea eax, [0x6c87d0]
mov dword [esp + 0xd4], eax
mov eax, 0x14
lea ecx, [0x7f2640]
lea eax, [ecx + eax*8]
mov dword [esp + 0xd8], eax
add esp, 0xb0
ret
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x9c]
xor esi, esi
mov ebx, 0xffffffff
mov byte [esp + 0x4a], bl
movzx ebp, byte [esp + 0x4b]
mov ebx, ecx
mov dword [esp + 0x58], eax
mov edi, edx
jmp 0x57cca5
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], esi
mov byte [esp + 0xd0], bl
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
add esp, 0xb0
ret
mov eax, ecx
mov ecx, ebx
call fcn.0045adc0
mov eax, ebp
call fcn.0045adc0
call fcn.0045ada0
mov eax, ebx
mov ecx, esi
call fcn.0045ad60
call fcn.0045adc0
mov ecx, ebp
call fcn.0045ada0
call fcn.0042f460
mov ecx, ebp
call fcn.0045ada0
lea eax, [0x633ac0]
mov dword [esp], eax
lea eax, [0x6c48a8]
mov dword [esp + 4], eax
call fcn.00430630
mov eax, 5
call fcn.0045adc0
xor eax, eax
call fcn.0045ad60
nop
call fcn.00459790
jmp fcn.0057caa0