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

Disassembly:
sub esp, 0x64
mov eax, dword [0x65ada4]
xor eax, esp
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x70]
push edi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], 0
test edi, edi
je 0x577deb
test ecx, ecx
je 0x577dce
push ebx
mov ebx, dword [esp + 0x7c]
push ebp
mov ebp, dword [esp + 0x78]
push esi
cmp ebp, ebx
je 0x57767c
cmp ebp, 4
je 0x577669
cmp ebp, 0x1d
je 0x577669
cmp ebp, 0x1c
jne case.0x57768f.10
cmp ebx, 4
je 0x57767c
cmp ebx, 0x1d
je 0x57767c
cmp ebx, 0x1c
jne case.0x57768f.10
lea eax, [ebp - 1]
cmp eax, 0x1e
ja case.0x57768f.10
movzx eax, byte [eax + 0x577e84]
jmp dword [eax*4 + 0x577e44]
mov eax, dword [edi]
mov ecx, dword [ecx]
cmp eax, ecx
jl 0x5776ce
xor edx, edx
cmp eax, ecx
setne dl
pop esi
pop ebp
pop ebx
pop edi
mov eax, edx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
mov esi, dword [ecx]
mov eax, dword [edi + 4]
mov ecx, dword [ecx + 4]
cmp eax, ecx
mov edx, dword [edi]
jg 0x5776e4
jl 0x5776ce
cmp edx, esi
jae 0x5776e6
pop esi
pop ebp
pop ebx
or eax, 0xffffffff
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
cmp edx, esi
jne 0x577d0d
cmp eax, ecx
jne 0x577d0d
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
push ecx
push edi
call fcn.005819b0
add esp, 8
test eax, eax
jge 0x577db2
pop esi
pop ebp
pop ebx
or eax, 0xffffffff
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x88]
push edx
push eax
push 0
push ecx
push edi
call fcn.00576750
add esp, 0x14
test eax, eax
jge 0x577db2
pop esi
pop ebp
pop ebx
or eax, 0xffffffff
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
push ecx
push edi
call fcn.00577280
add esp, 8
test eax, eax
jge 0x577938
pop esi
pop ebp
pop ebx
or eax, 0xffffffff
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
push ecx
push edi
call fcn.00584340
add esp, 8
test eax, eax
jge 0x577db2
pop esi
pop ebp
pop ebx
or eax, 0xffffffff
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
push ecx
push edi
call fcn.00584360
add esp, 8
test eax, eax
jge 0x577938
pop esi
pop ebp
pop ebx
or eax, 0xffffffff
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
movsx eax, byte [edi]
or esi, 0xffffffff
test al, al
jns 0x5777f8
mov ecx, 0xffffff00
mov dword [esp + 0x48], esi
jmp 0x5777fe
xor ecx, ecx
mov dword [esp + 0x48], ecx
or eax, ecx
mov ecx, dword [esp + 0x18]
movsx ecx, byte [ecx]
test cl, cl
jns 0x577816
mov edx, 0xffffff00
mov dword [esp + 0x48], esi
jmp 0x57781c
xor edx, edx
mov dword [esp + 0x48], edx
or ecx, edx
sub eax, ecx
jns 0x577938
mov eax, esi
pop esi
pop ebp
pop ebx
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
mov ax, word [edi]
mov cx, word [ecx]
cmp ax, cx
jl 0x577861
xor edx, edx
cmp ax, cx
jmp 0x5776a2
fld dword [edi]
fld dword [ecx]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x577879
fstp st(1)
fstp st(0)
pop esi
pop ebp
pop ebx
mov eax, 0xffffffff
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
fucompp
fnstsw ax
test ah, 0x44
jp 0x577d0d
pop esi
pop ebp
pop ebx
xor eax, eax
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
fld qword [edi]
fld qword [ecx]
jmp 0x577854
push ecx
push edi
call fcn.0057c2e0
add esp, 8
test eax, eax
jge 0x577db2
pop esi
pop ebp
pop ebx
or eax, 0xffffffff
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
lea edx, [esp + 0x1c]
push edx
push ecx
push edi
call fcn.0057c3d0
add esp, 0xc
test eax, eax
jne 0x5776ce
mov eax, dword [esp + 0x1c]
test eax, eax
jge 0x577db2
pop esi
pop ebp
pop ebx
or eax, 0xffffffff
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
movsx edx, byte [ecx]
movsx eax, byte [edi]
sub eax, edx
jns 0x577db2
pop esi
pop ebp
pop ebx
or eax, 0xffffffff
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
push ecx
push edi
call fcn.005772a0
add esp, 8
test eax, eax
jl 0x5776ce
xor edx, edx
test eax, eax
jmp 0x5776a2
mov edx, dword [esp + 0x8c]
mov eax, ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebx
mov dword [esp + 0x28], edx
xor esi, esi
lea ecx, [ecx]
mov eax, dword [esp + ecx + 0x44]
dec eax
cmp eax, 0x1e
ja case.0x577985.3
movzx eax, byte [eax + 0x577ed0]
jmp dword [eax*4 + 0x577ea4]
mov edx, dword [esp + ecx + 0x10]
movsx edx, byte [edx]
test dl, dl
jns 0x5779b4
mov eax, 0xffffff00
or eax, edx
cdq
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + esi + 0x2c], eax
mov dword [esp + esi + 0x30], edx
jmp case.0x577985.3
xor eax, eax
mov dword [esp + 0x50], eax
or eax, edx
cdq
mov dword [esp + esi + 0x2c], eax
mov dword [esp + esi + 0x30], edx
jmp case.0x577985.3
mov eax, dword [esp + ecx + 0x10]
movsx eax, word [eax]
cdq
mov dword [esp + esi + 0x2c], eax
mov dword [esp + esi + 0x30], edx
jmp case.0x577985.3
mov edx, dword [esp + ecx + 0x10]
mov eax, dword [edx]
cdq
mov dword [esp + esi + 0x2c], eax
mov dword [esp + esi + 0x30], edx
jmp case.0x577985.3
mov eax, dword [esp + ecx + 0x10]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + esi + 0x2c], edx
mov dword [esp + esi + 0x30], eax
jmp case.0x577985.3
mov edx, dword [esp + ecx + 0x10]
fld dword [edx]
mov dword [esp + 0x20], 1
fstp qword [esp + esi + 0x5c]
jmp case.0x577985.3
mov eax, dword [esp + ecx + 0x10]
fld qword [eax]
fstp qword [esp + esi + 0x5c]
jmp case.0x577985.3
cmp dword [esp + ecx + 0x24], 0x7fffffff
mov eax, dword [esp + ecx + 0x10]
mov dword [esp + ecx + 0x3c], eax
jne case.0x577985.3
lea edi, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x577a40
sub eax, edi
jmp 0x577a83
mov eax, dword [esp + ecx + 0x10]
lea edx, [eax + 4]
mov eax, dword [eax]
mov dword [esp + ecx + 0x3c], edx
jmp 0x577a87
mov eax, dword [esp + ecx + 0x10]
mov edi, dword [eax]
lea edx, [eax + 4]
jmp 0x577a6f
mov eax, dword [esp + ecx + 0x10]
movzx edi, word [eax]
lea edx, [eax + 2]
mov dword [esp + ecx + 0x3c], edx
lea eax, [edi + 7]
cdq
and edx, 7
add eax, edx
mov dword [esp + ecx + 0x54], edi
sar eax, 3
mov edi, dword [esp + 0x1c]
mov dword [esp + ecx + 0x24], eax
add esi, 8
add ecx, 4
cmp esi, 0x10
jl 0x577970
cmp ebp, 0xe
je 0x577aa4
cmp ebp, 0x1e
jne 0x577ab6
cmp ebx, 0xe
je 0x577d8e
cmp ebx, 0x1e
je 0x577d8e
cmp ebp, 4
je 0x577ad4
cmp ebp, 0x1d
je 0x577ad4
cmp ebp, 0xc
je 0x577ad4
cmp ebp, 0xe
je 0x577ad4
cmp ebp, 0x1e
je 0x577ad4
cmp ebp, 0x1c
jne 0x577b0a
cmp ebx, 4
je 0x577d6f
cmp ebx, 0x1d
je 0x577d6f
cmp ebx, 0xc
je 0x577d6f
cmp ebx, 0xe
je 0x577d6f
cmp ebx, 0x1e
je 0x577d6f
cmp ebx, 0x1c
je 0x577d6f
cmp ebp, 1
je 0x577b2d
cmp ebp, 6
je 0x577b2d
cmp ebp, 5
je 0x577b2d
cmp ebp, 0x1f
je 0x577b2d
cmp ebp, 0x10
jl 0x577b28
cmp ebp, 0x17
jle 0x577b2d
cmp ebp, 0xb
jne 0x577b68
cmp ebx, 1
je 0x577d41
cmp ebx, 6
je 0x577d41
cmp ebx, 5
je 0x577d41
cmp ebx, 0x1f
je 0x577d41
cmp ebx, 0x10
jl 0x577b5f
cmp ebx, 0x17
jle 0x577d41
cmp ebx, 0xb
je 0x577d41
cmp ebx, 3
jne 0x577bcf
cmp ebp, 1
je 0x577b89
cmp ebp, 6
je 0x577b89
cmp ebp, 5
je 0x577b89
cmp ebp, 0x1f
je 0x577b89
lea eax, [ebp - 0x10]
cmp eax, 7
ja 0x577bcf
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x5c]
push ecx
push 0
push edx
push eax
call fcn.005834d0
mov ecx, dword [esp + 0x28]
push ecx
lea edx, [esp + 0x70]
push edx
call fcn.005819b0
add esp, 0x18
test eax, eax
jge 0x577db2
pop esi
pop ebp
pop ebx
or eax, 0xffffffff
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
cmp ebp, 3
jne 0x577c0e
cmp ebx, 1
je 0x577bf0
cmp ebx, 6
je 0x577bf0
cmp ebx, 5
je 0x577bf0
cmp ebx, 0x1f
je 0x577bf0
lea edx, [ebx - 0x10]
cmp edx, 7
ja 0x577c60
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x5c]
push eax
push 0
push ecx
push edx
call fcn.005834d0
lea eax, [esp + 0x6c]
push eax
push edi
jmp 0x577ba9
cmp ebp, 7
je 0x577c22
cmp ebp, 2
je 0x577c22
cmp ebp, 0x18
je 0x577c22
cmp ebp, 0x19
jne 0x577c60
cmp ebx, 1
je 0x577c58
cmp ebx, 6
je 0x577c58
cmp ebx, 5
je 0x577c58
cmp ebx, 0x1f
je 0x577c58
cmp ebx, 0x10
jl 0x577c40
cmp ebx, 0x17
jle 0x577c58
cmp ebx, 3
jne 0x577c60
mov edx, dword [esp + 0x18]
push edx
call fcn.00580f30
fstp qword [esp + 0x68]
add esp, 4
jmp 0x577caa
fild qword [esp + 0x34]
fstp qword [esp + 0x64]
cmp ebx, 7
je 0x577c74
cmp ebx, 2
je 0x577c74
cmp ebx, 0x18
je 0x577c74
cmp ebx, 0x19
jne 0x577caa
cmp ebp, 1
je 0x577ca2
cmp ebp, 6
je 0x577ca2
cmp ebp, 5
je 0x577ca2
cmp ebp, 0x1f
je 0x577ca2
cmp ebp, 0x10
jl 0x577c92
cmp ebp, 0x17
jle 0x577ca2
cmp ebp, 3
jne 0x577caa
push edi
call fcn.00580f30
add esp, 4
jmp 0x577ca6
fild qword [esp + 0x2c]
fstp qword [esp + 0x5c]
cmp dword [esp + 0x20], 0
je 0x577d25
fld qword [esp + 0x5c]
fstp dword [esp + 0x20]
fld qword [esp + 0x64]
fstp dword [esp + 0x10]
cmp ebp, 3
jne 0x577cd4
push edi
call fcn.00580750
add esp, 4
cmp eax, 6
jle 0x577ceb
cmp ebx, 3
jne 0x577d25
mov eax, dword [esp + 0x18]
push eax
call fcn.00580750
add esp, 4
cmp eax, 6
jg 0x577d25
fld dword [esp + 0x20]
fld dword [esp + 0x10]
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x57785d
fucompp
fnstsw ax
test ah, 0x44
jnp 0x5776f4
pop esi
pop ebp
pop ebx
mov eax, 1
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
fld qword [esp + 0x64]
fld qword [esp + 0x5c]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x577d3d
fstp st(0)
jmp 0x57785f
fucompp
jmp 0x577d02
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x2c]
jg 0x577d68
jl 0x577bb9
cmp esi, edx
jae 0x5776e6
jmp 0x577bb9
cmp esi, edx
jmp 0x5776e6
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x40]
push edx
call fcn.005767e0
add esp, 8
jmp 0x577bb1
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x58]
push eax
push ecx
push edx
call fcn.00583970
add esp, 0x10
test eax, eax
jl 0x5776ce
xor ecx, ecx
test eax, eax
setne cl
pop esi
pop ebp
pop ebx
pop edi
mov eax, ecx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
xor eax, eax
cmp dword [esp + 0x78], 0xf
pop edi
sete al
add eax, 2
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
test ecx, ecx
je 0x577e0c
xor eax, eax
cmp dword [esp + 0x70], 0xf
pop edi
setne al
add eax, 0xfffffffd
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
mov eax, 0xf
cmp dword [esp + 0x70], eax
je 0x577e32
cmp dword [esp + 0x78], eax
je 0x577e32
mov eax, 0xfffffffc
pop edi
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00586584
add esp, 0x64
ret
mov ecx, dword [esp + 0x64]
pop edi
xor ecx, esp
xor eax, eax
call fcn.00586584
add esp, 0x64
ret