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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x57e836
add esp, 0xffffff80
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0x10]
test edx, edx
jne 0x57e7c0
xor eax, eax
xor edx, edx
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x88]
xor esi, esi
mov edi, esi
movzx esi, byte [ecx + 4]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x57deec
jmp 0x57def6
dec ebx
mov esi, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add ebp, ebx
mov ebx, esi
test ebx, ebx
jle 0x57def6
cmp byte [ebp], 0x2e
je 0x57dedd
mov dword [esp + 0x88], ebp
mov dword [esp + 0x8c], ebx
test eax, eax
je 0x57e72a
mov dword [esp + 0x30], eax
mov esi, edi
lea edi, [esp + 0x60]
xor eax, eax
call fcn.0045e0a8
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebx
mov eax, dword [esp + 0x30]
jmp 0x57df41
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x88]
mov esi, ecx
mov edx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], edx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x74]
lea edi, [esp + 0x60]
cmp dword [edi + 4], ecx
jle 0x57e232
xchg esi, eax
mov byte [esp + 0x22], al
xchg esi, eax
mov dword [esp], edi
call fcn.0057f210
mov ecx, dword [esp + 8]
mov eax, dword [esp + 4]
test ecx, ecx
jne 0x57e094
mov edx, dword [esp + 0x30]
test edx, edx
je 0x57e01a
mov eax, dword [esp + 0x50]
movzx ecx, byte [esp + 0x22]
mov dword [esp + 0x30], edx
mov ebx, dword [esp + 0x7c]
lea ebp, [ebx + 1]
mov dword [esp + 0x7c], ebp
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
test esi, esi
je 0x57dfe2
cmp edi, ebp
jg 0x57dfb9
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x74], ebx
jmp 0x57df2b
lea edx, [edi - 1]
cmp ebp, edx
jne 0x57dfd9
cmp edi, ebp
jbe 0x57e822
lea edx, [esi + ebx*8 + 8]
mov edx, dword [edx + 4]
test edx, edx
jne 0x57dfd9
mov edx, dword [esp + 0x30]
jmp 0x57dfac
mov edx, dword [esp + 0x30]
jmp 0x57df2b
mov ebx, dword [esp + 0x78]
lea ebp, [ebx + 1]
mov dword [esp + 0x74], ebp
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
lea edx, [esi - 1]
cmp ebp, edx
jne 0x57e011
cmp esi, ebp
jbe 0x57e819
lea edx, [ebx + edi + 1]
cmp byte [edx], 0x2e
jne 0x57e011
mov dword [esp + 0x74], esi
mov edx, dword [esp + 0x30]
jmp 0x57df2b
mov ebx, dword [esp + 0x84]
movzx ebp, byte [ebx + 3]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x57df84
lea eax, [0x5f6ee0]
mov dword [esp], eax
call fcn.0040b8d0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x8c]
mov dword [edi + 4], eax
mov ecx, dword [0x7a0970]
test ecx, ecx
jne 0x57e07b
mov edx, dword [esp + 0x88]
mov dword [edi], edx
mov dword [edi + 0xc], 2
lea ebx, [0x60efac]
mov dword [edi + 8], ebx
lea edx, [0x65ec44]
mov eax, edi
jmp 0x57df88
mov ecx, eax
mov eax, dword [esp + 0x88]
call fcn.0045de10
mov eax, ecx
mov edx, dword [esp + 0x88]
jmp 0x57e05e
cmp ecx, 4
jge 0x57e1fe
xor edx, edx
test dl, dl
jne 0x57e0da
mov edx, dword [esp + 0x30]
test edx, edx
je 0x57e0b9
mov eax, dword [esp + 0x50]
movzx ecx, byte [esp + 0x22]
jmp 0x57df8d
mov edx, dword [esp + 0x84]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0057f620
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
jmp 0x57e0af
cmp ecx, 4
jb 0x57e82b
add ecx, 0xfffffffc
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
add eax, ecx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0057fae0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x57e12e
mov edx, dword [esp + 0x30]
test edx, edx
je 0x57e128
mov eax, dword [esp + 0x50]
movzx ecx, byte [esp + 0x22]
jmp 0x57df8d
mov edx, eax
mov eax, ebx
jmp 0x57e11e
mov dword [esp + 0x24], edx
mov dword [esp + 0x44], ecx
movzx eax, byte [esp + 0x22]
test al, al
je 0x57e1dc
mov eax, 1
mov byte [esp + 0x22], al
lea ebx, [esp + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0057f2f0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x57e1a7
mov ecx, dword [esp + 0x50]
test eax, eax
je 0x57e17e
mov edx, eax
mov eax, ecx
movzx ecx, byte [esp + 0x22]
jmp 0x57df8d
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 8], ecx
call fcn.0057f620
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x57e170
mov ebx, dword [esp + 0x84]
movzx ebp, byte [ebx + 2]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x57e168
mov edx, dword [ebx + 0xc]
mov eax, dword [edx]
mov dword [esp], ebx
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ecx
mov ebp, dword [esp + 0x24]
mov dword [esp + 8], ebp
call eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x57e16c
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.00576ee0
mov eax, dword [esp + 8]
test eax, eax
setne al
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
jmp 0x57e148
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], eax
mov dword [esp], eax
lea ecx, [0x60f3e1]
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
call fcn.004028b0
movzx edx, byte [esp + 0xc]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
jmp 0x57e09f
xchg esi, eax
test al, al
xchg esi, eax
je 0x57e71e
mov ecx, dword [esp + 0x84]
mov esi, dword [ecx + 0x14]
test esi, esi
je 0x57e252
test eax, eax
je 0x57e5b4
movzx ebx, byte [esp + 0x90]
test bl, bl
je 0x57e472
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
jmp 0x57e356
inc edx
cmp edx, ecx
jge 0x57e45f
jae 0x57e808
lea ebx, [edx + eax]
cmp byte [ebx], 0x80
jb 0x57e27f
lea edx, [0x60f3e1]
mov dword [esp], edx
mov dword [esp + 4], 4
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.005803b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x40]
test ebp, ebp
je 0x57e456
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x50], edx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], ecx
lea ebx, [esp + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0057f2f0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x84]
movzx esi, byte [ebp + 3]
xchg esi, eax
test al, al
xchg esi, eax
je 0x57e321
test edx, edx
je 0x57e3e9
mov esi, dword [esp + 0x7c]
lea eax, [esi + 1]
mov dword [esp + 0x7c], eax
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
test edi, edi
je 0x57e3ae
cmp eax, ecx
jl 0x57e382
mov eax, dword [esp + 0x64]
mov dword [esp + 0x74], eax
mov ecx, ebp
lea edi, [esp + 0x60]
mov eax, edx
mov edx, ebx
movzx ebx, byte [esp + 0x90]
mov ebp, dword [esp + 0x74]
cmp dword [edi + 4], ebp
jle 0x57e472
mov dword [esp + 0x5c], edx
mov dword [esp + 0x40], eax
mov dword [esp], edi
call fcn.0057f210
mov ecx, dword [esp + 8]
mov eax, dword [esp + 4]
xor edx, edx
jmp 0x57e280
lea ebp, [ecx - 1]
cmp eax, ebp
jne 0x57e3a5
cmp eax, ecx
jae 0x57e803
lea eax, [edi + esi*8 + 8]
mov eax, dword [eax + 4]
test eax, eax
jne 0x57e3a5
mov ebp, dword [esp + 0x84]
jmp 0x57e33c
mov ebp, dword [esp + 0x84]
jmp 0x57e344
mov esi, dword [esp + 0x78]
lea eax, [esi + 1]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
lea ebp, [ecx - 1]
cmp eax, ebp
jne 0x57e3dd
cmp ecx, eax
jbe 0x57e7fe
lea eax, [esi + edi + 1]
cmp byte [eax], 0x2e
jne 0x57e3dd
mov dword [esp + 0x74], ecx
mov ebp, dword [esp + 0x84]
jmp 0x57e344
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], ecx
test eax, eax
je 0x57e3fe
cmp eax, 0x3f
jle 0x57e321
lea eax, [0x5f6ee0]
mov dword [esp], eax
call fcn.0040b8d0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x2c]
mov dword [edi + 4], eax
mov eax, dword [0x7a0970]
test eax, eax
jne 0x57e44b
mov edx, dword [esp + 0x4c]
mov dword [edi], edx
mov dword [edi + 0xc], 2
lea esi, [0x60efac]
mov dword [edi + 8], esi
mov ebp, dword [esp + 0x84]
lea edx, [0x65ec44]
mov ebx, edi
jmp 0x57e321
mov eax, dword [esp + 0x4c]
call fcn.0045de10
jmp 0x57e427
mov ebp, edx
mov edx, ebx
jmp 0x57e2d4
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x5c]
mov ebp, eax
mov eax, ecx
mov ecx, ebp
jmp 0x57e308
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x70]
test ebp, ebp
jne 0x57e564
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
test bl, bl
je 0x57e49e
movzx ecx, byte [ecx + 3]
test cl, cl
je 0x57e49e
test eax, eax
je 0x57e4be
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
sub esp, 0xffffff80
ret
test esi, esi
jle 0x57e55d
lea ecx, [esi + ebp - 1]
cmp byte [ecx], 0x2e
jne 0x57e55d
lea ecx, [esi - 1]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x88], ebp
cmp esi, 1
jge 0x57e54b
lea eax, [0x5f6ee0]
mov dword [esp], eax
call fcn.0040b8d0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x3c]
mov dword [edi + 4], eax
mov ecx, dword [0x7a0970]
test ecx, ecx
jne 0x57e535
mov ecx, dword [esp + 0x88]
mov dword [edi], ecx
mov dword [edi + 0xc], 2
lea edx, [0x60efac]
mov dword [edi + 8], edx
lea edx, [0x65ec44]
mov ebp, ecx
mov esi, eax
mov eax, edx
mov edx, edi
jmp 0x57e49e
mov ecx, eax
mov eax, dword [esp + 0x88]
call fcn.0045de10
mov edx, eax
mov eax, ecx
mov ecx, edx
jmp 0x57e512
cmp ecx, 0xfd
jg 0x57e4e6
mov ecx, ebp
mov edi, edx
mov edx, eax
mov eax, esi
jmp 0x57e528
mov ecx, esi
jmp 0x57e4d6
mov dword [esp + 0x38], eax
mov dword [esp + 0x58], edx
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], edi
lea eax, [0x60ef5c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
call fcn.004c3180
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
movzx eax, byte [esp + 0x90]
test al, al
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x58]
jmp 0x57e490
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
jmp 0x57e5ef
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x88]
lea edi, [esp + 0x60]
mov esi, dword [esp + 0x74]
cmp dword [edi + 4], esi
jle 0x57e71a
mov dword [esp], edi
call fcn.0057f210
mov eax, dword [esp + 0x84]
mov edx, dword [eax + 0x14]
mov ecx, dword [edx]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 8]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call ecx
movzx eax, byte [esp + 8]
test al, al
je 0x57e6b5
mov edx, dword [esp + 0x7c]
lea eax, [edx + 1]
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
test ebx, ebx
je 0x57e679
cmp eax, ecx
jl 0x57e656
mov eax, dword [esp + 0x64]
mov dword [esp + 0x74], eax
jmp 0x57e5ce
lea ebp, [ecx - 1]
cmp eax, ebp
jne 0x57e5ce
cmp eax, ecx
jae 0x57e814
lea eax, [ebx + edx*8 + 8]
mov eax, dword [eax + 4]
test eax, eax
je 0x57e649
jmp 0x57e5ce
mov edx, dword [esp + 0x78]
lea eax, [edx + 1]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x60]
lea ebp, [ecx - 1]
cmp eax, ebp
jne 0x57e5ce
cmp eax, ecx
jae 0x57e80f
lea eax, [ebx + edx + 1]
cmp byte [eax], 0x2e
jne 0x57e5ce
mov dword [esp + 0x74], ecx
jmp 0x57e5ce
lea eax, [0x5f6ee0]
mov dword [esp], eax
call fcn.0040b8d0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x8c]
mov dword [edi + 4], eax
mov eax, dword [0x7a0970]
test eax, eax
jne 0x57e70c
mov eax, dword [esp + 0x88]
mov dword [edi], eax
mov dword [edi + 0xc], 1
lea ecx, [0x65a1db]
mov dword [edi + 8], ecx
lea eax, [0x65ec44]
mov ecx, dword [esp + 0x84]
mov edx, edi
lea edi, [esp + 0x60]
jmp 0x57e252
mov eax, dword [esp + 0x88]
call fcn.0045de10
jmp 0x57e6e4
mov edi, edx
jmp 0x57e6fa
mov ecx, dword [esp + 0x84]
jmp 0x57e252
movzx esi, byte [ecx + 3]
xchg esi, eax
test al, al
xchg esi, eax
je 0x57df0c
test ebx, ebx
jne 0x57df0c
xchg edi, eax
mov byte [esp + 0x23], al
xchg edi, eax
lea eax, [0x5f6ee0]
mov dword [esp], eax
call fcn.0040b8d0
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x8c]
mov dword [edi + 4], eax
mov ecx, dword [0x7a0970]
test ecx, ecx
jne 0x57e7a7
mov ecx, dword [esp + 0x88]
mov dword [edi], ecx
mov dword [edi + 0xc], 2
lea esi, [0x60efac]
mov dword [edi + 8], esi
mov ecx, dword [esp + 0x84]
mov ebx, eax
mov ebp, dword [esp + 0x88]
lea eax, [0x65ec44]
mov edx, edi
movzx edi, byte [esp + 0x23]
jmp 0x57df0c
mov ecx, eax
mov eax, dword [esp + 0x88]
call fcn.0045de10
mov eax, ecx
mov ecx, dword [esp + 0x88]
jmp 0x57e775
mov eax, dword [edx]
mov dword [esp], ecx
mov ebx, dword [esp + 0x88]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 8], ebx
call eax
movzx esi, byte [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x84]
jmp 0x57decf
call fcn.0045de90
call fcn.0045de90
mov eax, edx
call fcn.0045de90
call fcn.0045de90
call fcn.0045de90
mov eax, ebp
mov ecx, esi
call fcn.0045de90
mov eax, ebp
mov ecx, edi
call fcn.0045de90
mov eax, 4
call fcn.0045def0
nop
call fcn.0045c8b0
jmp fcn.0057de90