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

Disassembly:
sub esp, 0x3c
movsd xmm0, qword [esp + 0x48]
push ebx
push ebp
push esi
mov esi, edx
movsd qword [esp + 0x34], xmm0
mov ebx, dword [esp + 0x38]
mov edx, ecx
mov ecx, dword [esp + 0x34]
mov eax, ecx
or eax, ebx
mov dword [esp + 0x24], edx
push edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x18], ecx
jne 0x5771e3
mov edi, dword [esp + 0x54]
xor ecx, ecx
mov ebp, dword [esp + 0x50]
test edi, edi
mov eax, ebp
setne cl
sub eax, esi
inc ecx
add ecx, edi
cmp eax, ecx
jl 0x57726c
mov byte [esi], 0x30
inc esi
test edi, edi
je 0x5771ce
push edi
mov byte [esi], 0x2e
inc esi
push 0x30
push esi
call fcn.005861d0
mov edx, dword [esp + 0x34]
add esp, 0xc
add esi, edi
mov dword [edx], esi
mov eax, edx
mov dword [edx + 4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 0x10
mov eax, ebx
shr ebx, 0x14
and eax, 0xfffff
mov dword [esp + 0x1c], eax
test ebx, ebx
jne 0x577283
mov dword [esp + 0x14], 0xfffffbce
mov ebp, dword [esp + 0x50]
cmp esi, ebp
je 0x57726c
mov byte [esi], 0x30
inc esi
mov edi, dword [esp + 0x54]
test edi, edi
je 0x57721d
cmp esi, ebp
je 0x57726c
mov byte [esi], 0x2e
inc esi
mov eax, dword [esp + 0x14]
test eax, eax
jns 0x5776fd
cdq
xor ebx, ebx
and edx, 0xf
lea ecx, [edx + eax]
mov eax, 0x38e38e39
mul edi
sar ecx, 4
neg ecx
mov ebp, edx
shr ebp, 1
inc ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], ebp
movzx eax, byte [ecx + 0x623520]
cmp ebp, eax
ja 0x577485
mov eax, dword [esp + 0x50]
sub eax, esi
cmp eax, edi
jge 0x577709
mov ebp, dword [esp + 0x50]
mov eax, dword [esp + 0x28]
mov dword [eax], ebp
mov dword [eax + 4], 0x84
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 0x10
add ebx, 0xfffffbcd
mov dword [esp + 0x18], ecx
or eax, 0x100000
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x13], 0
cmp ebx, 0xffffffcc
jl 0x577201
test ebx, ebx
jns 0x5772bd
xor eax, eax
mov edi, 1
mov dword [esp + 0x20], edi
lea ebp, [eax + 0x78]
jmp 0x5772fb
lea eax, [ebx + 0xf]
shr eax, 4
imul ecx, eax, 0x134410
mov ebp, eax
mov dword [esp + 0x34], eax
mov eax, 0x38e38e39
shl ebp, 4
add ebp, 0x78
shr ecx, 0x12
add ecx, 0x19
mul ecx
mov edi, edx
shr edi, 1
sub edi, 1
mov dword [esp + 0x20], edi
js 0x577201
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
sub ebp, ebx
mov ebx, dword [esp + 0x1c]
lfence
movzx eax, word [eax*2 + 0x623340]
lea edx, [ebp + 8]
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x34], edx
mov edx, ecx
shld ebx, edx, 8
shl edx, 8
add eax, edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x2c], edx
lea eax, [eax + eax*2]
lea ecx, [eax*8 + 0x5ae9b8]
mov dword [esp + 0x24], ecx
push ebx
push edx
mov edx, dword [esp + 0x3c]
call fcn.00575520
mov ebx, eax
mov al, byte [esp + 0x13]
test al, al
je 0x577371
mov eax, ebp
sub eax, esi
cmp eax, 9
jl 0x57726c
mov edx, esi
mov ecx, ebx
call fcn.005765d0
mov al, byte [esp + 0x13]
add esi, 9
jmp 0x577457
test ebx, ebx
je 0x577457
mov ecx, ebx
call fcn.005754a0
mov ebp, eax
mov eax, dword [esp + 0x50]
sub eax, esi
mov dword [esp + 0x30], ebp
cmp eax, ebp
jl 0x577268
xor edi, edi
cmp ebx, 0x2710
jb 0x5773ff
add ebp, 0xfffffffc
add ebp, esi
nop dword [eax]
mov eax, 0xd1b71759
lea ebp, [ebp - 4]
mul ebx
add edi, 4
shr edx, 0xd
imul eax, edx, 0x2710
sub ebx, eax
mov eax, 0x51eb851f
mov ecx, ebx
mov ebx, edx
mul ecx
shr edx, 5
imul eax, edx, 0x64
sub ecx, eax
movzx eax, word [ecx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ebp + 6], ax
movzx eax, word [edx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ebp + 4], ax
cmp ebx, 0x2710
jae 0x5773b0
mov ebp, dword [esp + 0x30]
nop
cmp ebx, 0x64
jb 0x57742a
mov eax, 0x51eb851f
mov ecx, ebp
mul ebx
sub ecx, edi
shr edx, 5
imul eax, edx, 0x64
sub ebx, eax
add edi, 2
mov ax, word [ebx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ebx, edx
mov word [ecx + esi - 2], ax
cmp ebx, 0xa
jb 0x577442
mov ax, word [ebx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, ebp
sub ecx, edi
mov word [ecx + esi - 2], ax
jmp 0x577447
add bl, 0x30
mov byte [esi], bl
mov edi, dword [esp + 0x20]
mov al, 1
add esi, ebp
mov byte [esp + 0x13], al
mov ebp, dword [esp + 0x50]
mov ecx, dword [esp + 0x24]
dec edi
mov edx, dword [esp + 0x2c]
sub ecx, 0x18
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ecx
test edi, edi
jns 0x577338
test al, al
jne 0x57720d
nop
jmp 0x577205
test eax, eax
je 0x5774c7
mov eax, dword ds:[esp + 0x50]
lfence
movzx ebx, byte [ecx + 0x623520]
sub eax, esi
lea ecx, [ebx + ebx*8]
cmp eax, ecx
jl 0x577268
lea eax, [esp + 0x13]
mov edx, ecx
lfence
push eax
mov ecx, esi
mov byte [esp + 0x17], 0x30
call fcn.00577740
mov ecx, dword [esp + 0x20]
lea eax, [ebx + ebx*8]
add esi, eax
cmp ebx, ebp
jae 0x57771b
mov eax, dword [esp + 0x20]
movzx edx, word [ecx*2 + 0x6233c2]
movzx ecx, word [ecx*2 + 0x6233c0]
mov dword [esp + 0x38], edx
movzx eax, byte [eax + 0x623520]
sub ecx, eax
mov eax, dword [esp + 0x50]
add ecx, ebx
sub eax, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], ecx
lea eax, [ecx + ecx*2]
lea ebp, [eax*8 + 0x5b5c78]
mov dword [esp + 0x30], ebp
nop
cmp ecx, edx
jae 0x5776e8
mov ecx, dword ds:[esp + 0x18]
mov edx, 8
mov eax, dword [esp + 0x1c]
sub edx, dword [esp + 0x20]
shld eax, ecx, 8
shl edx, 4
sub edx, dword [esp + 0x14]
shl ecx, 8
push eax
push ecx
mov ecx, ebp
call fcn.00575520
mov ecx, dword [esp + 0x34]
mov ebp, eax
dec ecx
cmp ebx, ecx
jae 0x5775a5
cmp dword [esp + 0x24], 9
jl 0x577268
mov edx, esi
mov ecx, ebp
lfence
call fcn.005765d0
mov ecx, dword [esp + 0x2c]
inc ebx
mov ebp, dword [esp + 0x30]
inc ecx
sub dword [esp + 0x24], 9
add ebp, 0x18
mov edx, dword [esp + 0x38]
add esi, 9
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ebp
cmp ebx, dword [esp + 0x34]
jb 0x577510
mov eax, dword [esp + 0x28]
mov dword [eax], esi
mov dword [eax + 4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 0x10
lea eax, [ebx + ebx*8]
mov edx, edi
sub edx, eax
mov ebx, 9
xor ecx, ecx
mov dword [esp + 0x38], edx
sub ebx, edx
je 0x577625
nop dword [eax + eax]
mov eax, 0xcccccccd
mov ecx, ebp
mul ebp
shr edx, 3
mov ebp, edx
lea eax, [edx + edx*4]
add eax, eax
sub ecx, eax
sub ebx, 1
jne 0x5775c0
cmp ecx, 5
jne 0x577625
mov edx, dword [esp + 0x14]
not edx
sub edx, edi
test edx, edx
jle 0x57761e
cmp edx, 0x3c
jge 0x577617
xor ecx, ecx
xor eax, eax
bts ecx, edx
cmp edx, 0x20
cmovae eax, ecx
xor ecx, eax
cmp edx, 0x40
cmovae eax, ecx
add ecx, 0xffffffff
adc eax, 0xffffffff
and ecx, dword [esp + 0x18]
and eax, dword [esp + 0x1c]
or ecx, eax
je 0x57761e
mov edi, 1
jmp 0x577630
mov edi, 2
jmp 0x577630
mov eax, 5
cmp eax, ecx
sbb edi, edi
neg edi
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x577657
mov eax, dword ds:[esp + 0x50]
sub eax, esi
cmp eax, ebx
jl 0x577268
push esi
mov edx, ebp
mov ecx, ebx
lfence
call fcn.00576660
add esi, ebx
test edi, edi
je 0x57771b
mov ebx, dword [esp + 0x44]
mov eax, esi
mov ebp, dword [esp + 0x50]
mov edx, ebp
cmp esi, ebx
je 0x577691
nop
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x2e
jne 0x57767d
mov edx, eax
jmp 0x57768d
nop dword [eax]
cmp cl, 0x39
jne 0x5776c3
mov byte [eax], 0x30
mov edi, 1
cmp eax, ebx
jne 0x577670
mov byte [eax], 0x31
cmp edx, ebp
je 0x57769d
mov word [edx], 0x2e30
nop dword [eax]
cmp esi, ebp
je 0x57726c
mov eax, dword [esp + 0x28]
mov byte [esi], 0x30
inc esi
mov dword [eax], esi
mov dword [eax + 4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 0x10
cmp edi, 1
je 0x5776cd
test cl, 1
je 0x57771b
inc cl
mov byte [eax], cl
mov eax, dword [esp + 0x28]
mov dword [eax], esi
mov dword [eax + 4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret 0x10
lea eax, [ebx + ebx*8]
sub edi, eax
mov eax, dword [esp + 0x50]
sub eax, esi
cmp eax, edi
jl 0x577268
jmp 0x577709
mov eax, ebp
sub eax, esi
cmp eax, edi
jl 0x57726c
test edi, edi
je 0x577719
push edi
push 0x30
push esi
call fcn.005861d0
add esp, 0xc
add esi, edi
mov eax, dword [esp + 0x28]
pop edi
mov dword [eax], esi
pop esi
pop ebp
mov dword [eax + 4], 0
pop ebx
add esp, 0x3c
ret 0x10