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

Disassembly:
mov ecx, dword [0x93d128]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x44]
cmp eax, dword [ecx + 8]
jbe 0x57cacd
sub esp, 0xc4
lea edi, [esp + 0xe8]
xor eax, eax
call fcn.0045f34b
mov ecx, dword [esp + 0xe4]
test ecx, ecx
jne 0x57c375
mov dword [esp + 0x2e], 0x4e6f0d0d
lea edi, [esp + 0x30]
lea esi, [0x790b3f]
call fcn.0045f806
xor eax, eax
jmp 0x57ca6b
mov edx, dword [esp + 0xcc]
lea ebx, [edx - 1]
test ebx, ebx
jge 0x57c3ad
mov ebp, edx
neg edx
mov eax, 0xaaaaaaab
mov ebx, edx
imul edx
sub edx, ebp
sar edx, 3
sar ebx, 0x1f
sub edx, ebx
mov esi, dword [esp + 0xc8]
sub esi, edx
lea edx, [edx + edx*2]
dec esi
lea ebx, [ebp + edx*4 + 0xb]
jmp 0x57c3b4
mov esi, dword [esp + 0xc8]
cmp ebx, 0xc
jl 0x57c3cf
mov eax, 0xaaaaaaab
imul ebx
add edx, ebx
sar edx, 3
lea ebp, [edx + edx*2]
shl ebp, 2
add esi, edx
sub ebx, ebp
mov edx, dword [esp + 0xe0]
test edx, edx
jge 0x57c40d
lea ebp, [edx + 1]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov eax, 0x44b82fa1
mov edi, edx
imul ebp
sar edx, 0x1c
sar ebp, 0x1f
sub edx, ebp
mov ebp, dword [esp + 0xdc]
sub ebp, edx
imul edx, edx, 0x3b9aca00
dec ebp
lea edx, [edi + edx + 0x3b9aca00]
jmp 0x57c414
mov ebp, dword [esp + 0xdc]
cmp edx, 0x3b9aca00
jl 0x57c434
mov eax, 0x44b82fa1
mov edi, edx
imul edx
sar edx, 0x1c
imul eax, edx, 0x3b9aca00
add ebp, edx
sub edi, eax
jmp 0x57c436
mov edi, edx
test ebp, ebp
jge 0x57c474
lea edx, [ebp + 1]
neg edx
mov dword [esp + 0x98], edx
mov eax, 0x88888889
imul edx
sub edx, ebp
dec edx
sar edx, 5
mov eax, edi
mov edi, dword [esp + 0x98]
sar edi, 0x1f
sub edx, edi
mov edi, dword [esp + 0xd8]
sub edi, edx
imul edx, edx, 0x3c
dec edi
lea ebp, [ebp + edx + 0x3c]
jmp 0x57c47d
mov eax, edi
mov edi, dword [esp + 0xd8]
mov dword [esp + 0x98], eax
cmp ebp, 0x3c
jl 0x57c4a3
mov eax, 0x88888889
imul ebp
add edx, ebp
sar edx, 5
imul eax, edx, 0x3c
add edi, edx
sub ebp, eax
mov eax, dword [esp + 0x98]
test edi, edi
jge 0x57c4e1
lea edx, [edi + 1]
neg edx
mov dword [esp + 0x94], edx
mov eax, 0x88888889
imul edx
sub edx, edi
dec edx
sar edx, 5
mov eax, ebp
mov ebp, dword [esp + 0x94]
sar ebp, 0x1f
sub edx, ebp
mov ebp, dword [esp + 0xd4]
sub ebp, edx
imul edx, edx, 0x3c
dec ebp
lea edi, [edi + edx + 0x3c]
jmp 0x57c4ea
mov eax, ebp
mov ebp, dword [esp + 0xd4]
mov dword [esp + 0x94], eax
cmp edi, 0x3c
jl 0x57c510
mov eax, 0x88888889
imul edi
add edx, edi
sar edx, 5
imul eax, edx, 0x3c
add ebp, edx
sub edi, eax
mov eax, dword [esp + 0x94]
test ebp, ebp
jge 0x57c54e
lea edx, [ebp + 1]
neg edx
mov dword [esp + 0x90], edx
mov eax, 0xaaaaaaab
imul edx
sub edx, ebp
dec edx
sar edx, 4
mov eax, edi
mov edi, dword [esp + 0x90]
sar edi, 0x1f
sub edx, edi
mov edi, dword [esp + 0xd0]
sub edi, edx
lea edx, [edx + edx*2]
dec edi
lea ebp, [ebp + edx*8 + 0x18]
jmp 0x57c557
mov eax, edi
mov edi, dword [esp + 0xd0]
mov dword [esp + 0x90], eax
cmp ebp, 0x18
jl 0x57c579
mov eax, 0xaaaaaaab
imul ebp
add edx, ebp
sar edx, 4
lea eax, [edx + edx*2]
shl eax, 3
add edi, edx
sub ebp, eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x74], edi
mov dword [esp + 0x68], ebp
mov edx, esi
sar esi, 0x1f
mov dword [esp + 0x8c], esi
nop
add edx, 0xd116ebf
mov dword [esp + 0x58], edx
adc esi, 0x44
shr edx, 1
mov eax, edx
mov ebp, 0xa3d70a3e
mul ebp
shr edx, 7
mov dword [esp + 0x88], edx
mov eax, esi
shr eax, 1
mul ebp
shr edx, 7
mov dword [esp + 0x84], edx
imul eax, edx, 0x190
sub esi, eax
mov eax, esi
mov edi, 0xa3d70a
mul edi
lea esi, [esi + esi*2]
shl esi, 5
mov edi, dword [esp + 0x88]
imul ecx, edi, 0x190
mov ebx, dword [esp + 0x58]
sub ebx, ecx
add ebx, esi
shr ebx, 1
mov ecx, eax
mov eax, ebx
mov ebx, edx
mul ebp
shr edx, 7
add edi, 0
mov esi, dword [esp + 0x84]
adc esi, 0
add ecx, edi
adc ebx, esi
add edx, ecx
adc ebx, 0
mov eax, 0x190
mov ecx, edx
mul edx
imul esi, ebx, 0x190
add edx, esi
mov esi, eax
mov eax, 0x23ab1
mov edi, edx
mul ecx
mov dword [esp + 0x54], eax
imul ebx, ebx, 0x23ab1
add edx, ebx
mov dword [esp + 0x88], edx
mov ebx, dword [esp + 0x64]
sub ebx, esi
mov dword [esp + 0x84], ebx
mov esi, dword [esp + 0x8c]
sbb esi, edi
mov dword [esp + 0x8c], esi
add ebx, 0xd116ebf
adc esi, 0x44
mov dword [esp + 0x80], esi
shr esi, 1
mov eax, esi
mul ebp
shr edx, 5
mov dword [esp + 0x7c], edx
mov eax, ebx
shr eax, 1
mul ebp
shr edx, 5
mov dword [esp + 0x78], edx
mov esi, dword [esp + 0x7c]
imul ecx, esi, 0x64
mov edi, dword [esp + 0x80]
sub edi, ecx
mov eax, 0x28f5c28
mul edi
mov dword [esp + 0x7c], edx
lea edi, [edi + edi*2]
shl edi, 5
mov edx, dword [esp + 0x78]
imul ecx, edx, 0x64
sub ebx, ecx
add ebx, edi
shr ebx, 1
mov ecx, eax
mov eax, ebx
mov ebx, edx
mul ebp
shr edx, 5
add ebx, 0
adc esi, 0
add ecx, ebx
mov ebx, dword [esp + 0x7c]
adc ebx, esi
add edx, ecx
adc ebx, 0
mov eax, 0x64
mov ecx, edx
mul edx
imul ebp, ebx, 0x64
add edx, ebp
mov ebp, eax
mov eax, 0x8eac
mov esi, edx
mul ecx
imul ebx, ebx, 0x8eac
add edx, ebx
mov dword [esp + 0x7c], edx
mov ebx, dword [esp + 0x84]
sub ebx, ebp
mov ebp, dword [esp + 0x8c]
sbb ebp, esi
mov dword [esp + 0x8c], ebp
mov esi, ebx
add ebx, 0xd116ebf
adc ebp, 0x44
mov ecx, ebp
shr ebp, 2
shr ebx, 2
shl ecx, 0x1e
or ecx, ebx
mov dword [esp + 0x84], ecx
mov ebx, ebp
shl ebp, 2
shl ecx, 2
mov edi, dword [esp + 0x84]
shr edi, 0x1e
or edi, ebp
mov dword [esp + 0x78], edi
mov ebp, eax
mov eax, 0x5b5
mov edi, dword [esp + 0x84]
mul edi
mov dword [esp + 0x84], eax
imul ebx, ebx, 0x5b5
add edx, ebx
mov ebx, dword [esp + 0x54]
add ebx, ebp
mov ebp, dword [esp + 0x7c]
mov edi, dword [esp + 0x88]
adc ebp, edi
sub esi, ecx
mov edi, dword [esp + 0x8c]
mov ecx, edx
mov edx, dword [esp + 0x78]
sbb edi, edx
add esi, 0xd116ebf
adc edi, 0x44
mov eax, 0x16d
mul esi
imul esi, edi, 0x16d
add edx, esi
mov esi, dword [esp + 0x84]
add esi, ebx
adc ecx, ebp
add eax, esi
adc edx, ecx
mov ebx, dword [esp + 0x5c]
cmp ebx, 0xd
jae 0x57ca4f
lea ecx, [0x716640]
mov ecx, dword [ecx + ebx*4]
mov ebp, ecx
sar ecx, 0x1f
add ebp, eax
adc edx, ecx
mov ecx, dword [esp + 0x64]
test ecx, 3
jne 0x57c81e
mov esi, ecx
sar ecx, 0x1f
mov eax, 0x51eb851f
mov edi, edx
imul esi
mov eax, edx
sar edx, 5
sub edx, ecx
imul edx, edx, 0x64
cmp esi, edx
jne 0x57c80e
sar eax, 7
sub eax, ecx
imul ecx, eax, 0x190
cmp esi, ecx
jne 0x57c820
lea ecx, [ebx + 1]
cmp ecx, 3
jl 0x57c820
add ebp, 1
adc edi, 0
jmp 0x57c820
mov edi, edx
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov edx, dword [esp + 0x74]
lea eax, [edx - 1]
mov edx, eax
sar edx, 0x1f
mov ebx, dword [esp + 0x68]
imul ebx, ebx, 0xe10
mov esi, dword [esp + 0x90]
imul esi, esi, 0x3c
add ebx, esi
mov esi, dword [esp + 0x94]
add ebx, esi
mov esi, ebx
sar ebx, 0x1f
add eax, ebp
adc edx, edi
mov ebp, 0x15180
mov edi, edx
mul ebp
imul ebp, edi, 0x15180
add edx, ebp
add esi, eax
mov dword [esp + 0x60], esi
adc edx, ebx
mov dword [esp + 0x8c], edx
add esi, 0xe5263700
mov dword [esp + 0x6c], esi
mov dword [esp + 4], esi
adc edx, 0x80000001
mov dword [esp + 0x70], edx
mov dword [esp + 8], edx
call fcn.0057cd60
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x57c94a
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ebp, ecx
sar ecx, 0x1f
mov eax, edx
mov edx, dword [esp + 0x60]
mov esi, edx
sub edx, ebp
mov edi, ebp
mov ebp, dword [esp + 0x8c]
sbb ebp, ecx
add edx, 0xe5263700
adc ebp, 0x80000001
cmp ebx, ebp
setg cl
sete bl
cmp edx, eax
setb al
and eax, ebx
or eax, ecx
test al, al
jne 0x57c90b
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
cmp ebx, ebp
setl bl
sete al
cmp edx, ecx
setae cl
and ecx, eax
or ecx, ebx
test cl, cl
je 0x57c92c
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0057cd60
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x60]
mov edi, ecx
mov ecx, edi
sar edi, 0x1f
sub esi, ecx
mov edx, dword [esp + 0x8c]
sbb edx, edi
add esi, 0xe5263700
adc edx, 0x80000001
jmp 0x57c952
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x98]
mov ebx, ecx
sar ecx, 0x1f
mov dword [esp + 0x8c], ecx
lea edi, [esp + 0x9c]
xor eax, eax
call fcn.0045f34b
mov dword [esp + 0x9c], ebx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0xa0], ecx
add esi, 0x7791f700
mov dword [esp + 0xa4], esi
adc edx, 0xe
mov dword [esp + 0xa8], edx
mov ecx, dword [0x723bd4]
mov dword [esp + 0xac], ecx
lea edi, [esp + 0xb0]
lea esi, [esp + 0x9c]
call fcn.0045f82e
nop
mov ecx, dword [esp + 0xe4]
lea edx, [0x727760]
cmp ecx, edx
jne 0x57c9d3
xor ecx, ecx
mov eax, dword [esp + 0xb4]
nop
test eax, 0x80000000
je 0x57ca2e
mov edx, dword [esp + 0xb0]
shl eax, 1
mov ebx, edx
shl edx, 1
shr ebx, 0x1f
or ebx, eax
mov eax, ebx
shl ebx, 1
shr edx, 0x1f
or ebx, edx
shr eax, 0x1f
nop
add ebx, 0xd7b17f80
mov dword [esp + 0xb8], ebx
adc eax, 0xd
mov dword [esp + 0xbc], eax
and dword [esp + 0xb0], 0x3fffffff
mov dword [esp + 0xb4], 0
mov dword [esp + 0xc0], ecx
lea edi, [esp + 0xe8]
lea esi, [esp + 0xb0]
call fcn.0045f82e
add esp, 0xc4
ret
mov eax, ebx
mov ecx, 0xd
call fcn.0045f150
movzx ebp, byte [esp + eax + 0x2e]
sub ebp, ebx
xchg ebp, ebx
mov byte [esp + eax + 0x2e], bl
xchg ebp, ebx
inc eax
cmp eax, 0x26
jge 0x57ca86
lea edx, [0x790b17]
movzx ebx, byte [edx + eax]
jb 0x57ca5b
mov ecx, 0x26
call fcn.0045f150
mov dword [esp], 0
lea eax, [esp + 0x2e]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x26
call fcn.0044b7a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040a670
mov eax, dword [esp + 8]
lea ecx, [0x74af60]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00434270
nop
call fcn.0045dcb0
jmp fcn.0057c320