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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x28]
cmp eax, dword [ecx + 8]
jbe 0x57c774
sub esp, 0xa8
mov edx, dword [esp + 0xb0]
cmp edx, 4
jl 0x57c306
nop
mov ebx, dword [esp + 0xac]
movzx ebp, byte [ebx + 1]
movzx esi, byte [ebx]
shl esi, 8
or ebp, esi
mov word [esp + 0x2a], bp
test bp, bp
jne 0x57c0d8
lea ecx, [edx - 2]
cmp ecx, 1
jbe 0x57c769
movzx eax, byte [ebx + 3]
movzx ecx, byte [ebx + 2]
shl ecx, 8
or eax, ecx
movzx eax, ax
mov ecx, dword [esp + 0xb4]
add ecx, 0xfffffffc
mov esi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
add ecx, ebx
add edx, 0xfffffffc
jmp 0x57c20a
cmp bp, 1
jne 0x57c25a
lea ecx, [edx - 2]
cmp ecx, 1
jbe 0x57c75f
mov esi, dword [esp + 0xb4]
lea edi, [esi - 2]
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 2
mov eax, ebp
movzx ebp, byte [ebx + edi + 1]
movzx edi, byte [ebx + edi]
shl edi, 8
or ebp, edi
test bp, bp
jne 0x57c1ed
cmp edx, 8
jl 0x57c17b
lea ecx, [edx - 4]
cmp ecx, 3
jbe 0x57c755
lea ecx, [esi - 4]
neg ecx
sar ecx, 0x1f
and ecx, 4
lea ebp, [esi - 8]
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 8
add ebp, ebx
add edx, 0xfffffff8
movzx edi, byte [ebx + ecx + 3]
movzx eax, byte [ebx + ecx + 2]
shl eax, 8
or edi, eax
movzx eax, byte [ebx + ecx + 1]
shl eax, 0x10
or eax, edi
movzx ecx, byte [ebx + ecx]
shl ecx, 0x18
or ecx, eax
movzx eax, word [esp + 0x2a]
jmp 0x57c206
lea eax, [0x6a9700]
mov dword [esp], eax
call fcn.0040be50
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x22
lea ecx, [0x6fd6e5]
mov dword [eax], ecx
mov word [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
lea ecx, [0x785138]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], eax
add esp, 0xa8
ret
movzx ecx, bp
lea ebp, [esi - 4]
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 4
add ebp, ebx
add edx, 0xfffffffc
mov eax, ecx
mov ecx, ebp
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], eax
lea ebx, [0x6a7c60]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.0044bce0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x2c]
movzx edx, word [esp + 0x2a]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
xor edi, edi
xor edi, edi
mov dword [esp + 0x30], edi
jmp 0x57c3d8
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov word [esp], bp
call fcn.004096b0
mov eax, dword [esp + 4]
lea ecx, [0x69bdc0]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
lea eax, [0x6fda7b]
mov dword [esp], eax
mov dword [esp + 4], 0x22
lea eax, [esp + 0x50]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004cde70
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov word [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
add esp, 0xa8
ret
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp], edx
call fcn.00409720
mov eax, dword [esp + 4]
lea ecx, [0x69b600]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
lea eax, [0x700a80]
mov dword [esp], eax
mov dword [esp + 4], 0x2d
lea eax, [esp + 0x50]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004cde70
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov word [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
add esp, 0xa8
ret
lea edi, [ecx + 1]
movzx ecx, word [esp + 0x2a]
mov ebp, dword [esp + 0x4c]
mov ecx, edx
movzx edx, word [esp + 0x2a]
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x48]
cmp edi, ecx
jge 0x57c6f5
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x30]
cmp edi, esi
jg 0x57c60c
ja 0x57c74c
sub ebp, edi
mov dword [esp + 0x40], ebp
sub esi, edi
mov dword [esp + 0x3c], esi
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edi, ebp
add ebx, edi
mov dword [esp + 0x4c], ebx
test dx, dx
jne 0x57c4ea
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp], ebx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
call fcn.0057ea10
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x44], edx
lea edi, [esp + 0x68]
lea esi, [esp + 0xc]
call fcn.004664d8
lea edi, [esp + 0x98]
lea esi, [esp + 0x68]
call fcn.004664d8
lea ecx, [0x6cf640]
mov dword [esp], ecx
lea ebx, [esp + 0x98]
mov dword [esp + 4], ebx
call fcn.004095e0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
cmp ecx, edx
jae 0x57c743
mov ebx, dword [esp + 0x48]
lea ebp, [ebx + ecx*8]
lea esi, [0x785d54]
mov dword [ebp], esi
mov ebp, dword [0x1eaa9f0]
lea edi, [ebx + ecx*8 + 4]
test ebp, ebp
jne 0x57c4d4
mov dword [edi], eax
jmp 0x57c4d9
call fcn.00465d80
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x44]
jmp 0x57c5b9
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp], ebx
mov dword [esp + 4], esi
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
call fcn.0057c7e0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x44], edx
lea edi, [esp + 0x58]
lea esi, [esp + 0xc]
call fcn.004664d8
lea edi, [esp + 0x88]
lea esi, [esp + 0x58]
call fcn.004664d8
lea ecx, [0x6cf000]
mov dword [esp], ecx
lea ebx, [esp + 0x88]
mov dword [esp + 4], ebx
call fcn.004095e0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
cmp ecx, edx
jae 0x57c73a
mov ebx, dword [esp + 0x48]
lea ebp, [ebx + ecx*8]
lea esi, [0x785a34]
mov dword [ebp], esi
mov ebp, dword [0x1eaa9f0]
lea edi, [ebx + ecx*8 + 4]
test ebp, ebp
jne 0x57c5a2
mov dword [edi], eax
jmp 0x57c5a7
call fcn.00465d80
lea esi, [0x785d54]
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x44]
test ebp, ebp
je 0x57c3b1
mov word [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd0], edi
add esp, 0xa8
ret
mov dword [esp + 0x40], esi
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp], edi
call fcn.00409720
mov eax, dword [esp + 4]
lea ecx, [0x69b600]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00409720
mov eax, dword [esp + 4]
lea ecx, [0x69b600]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
lea eax, [0x7012ae]
mov dword [esp], eax
mov dword [esp + 4], 0x2e
lea eax, [esp + 0x78]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call fcn.004cde70
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov word [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], ecx
add esp, 0xa8
ret
mov word [esp + 0xb8], dx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
add esp, 0xa8
ret
mov eax, ecx
mov ecx, edx
call fcn.00465e00
mov eax, ecx
mov ecx, edx
call fcn.00465e00
mov eax, edi
mov ecx, esi
call fcn.00465e60
mov eax, 3
call fcn.00465e00
mov eax, 1
call fcn.00465e00
mov eax, 1
call fcn.00465e00
nop
call fcn.004649b0
jmp fcn.0057c050