Function at 0x577140
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 0x5771c3
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 0x57724c
mov byte [esi], 0x30
inc esi
test edi, edi
je 0x5771ae
push edi
mov byte [esi], 0x2e
inc esi
push 0x30
push esi
call fcn.005861b0
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 0x577263
mov dword [esp + 0x14], 0xfffffbce
mov ebp, dword [esp + 0x50]
cmp esi, ebp
je 0x57724c
mov byte [esi], 0x30
inc esi
mov edi, dword [esp + 0x54]
test edi, edi
je 0x5771fd
cmp esi, ebp
je 0x57724c
mov byte [esi], 0x2e
inc esi
mov eax, dword [esp + 0x14]
test eax, eax
jns 0x5776dd
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 + 0x623540]
cmp ebp, eax
ja 0x577465
mov eax, dword [esp + 0x50]
sub eax, esi
cmp eax, edi
jge 0x5776e9
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 0x5771e1
test ebx, ebx
jns 0x57729d
xor eax, eax
mov edi, 1
mov dword [esp + 0x20], edi
lea ebp, [eax + 0x78]
jmp 0x5772db
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 0x5771e1
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
sub ebp, ebx
mov ebx, dword [esp + 0x1c]
lfence
movzx eax, word [eax*2 + 0x623330]
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.00575500
mov ebx, eax
mov al, byte [esp + 0x13]
test al, al
je 0x577351
mov eax, ebp
sub eax, esi
cmp eax, 9
jl 0x57724c
mov edx, esi
mov ecx, ebx
call fcn.005765b0
mov al, byte [esp + 0x13]
add esi, 9
jmp 0x577437
test ebx, ebx
je 0x577437
mov ecx, ebx
call fcn.00575480
mov ebp, eax
mov eax, dword [esp + 0x50]
sub eax, esi
mov dword [esp + 0x30], ebp
cmp eax, ebp
jl 0x577248
xor edi, edi
cmp ebx, 0x2710
jb 0x5773df
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 0x577390
mov ebp, dword [esp + 0x30]
nop
cmp ebx, 0x64
jb 0x57740a
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 0x577422
mov ax, word [ebx*2 + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov ecx, ebp
sub ecx, edi
mov word [ecx + esi - 2], ax
jmp 0x577427
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 0x577318
test al, al
jne 0x5771ed
nop
jmp 0x5771e5
test eax, eax
je 0x5774a7
mov eax, dword ds:[esp + 0x50]
lfence
movzx ebx, byte [ecx + 0x623540]
sub eax, esi
lea ecx, [ebx + ebx*8]
cmp eax, ecx
jl 0x577248
lea eax, [esp + 0x13]
mov edx, ecx
lfence
push eax
mov ecx, esi
mov byte [esp + 0x17], 0x30
call fcn.00577720
mov ecx, dword [esp + 0x20]
lea eax, [ebx + ebx*8]
add esi, eax
cmp ebx, ebp
jae 0x5776fb
mov eax, dword [esp + 0x20]
movzx edx, word [ecx*2 + 0x6233b2]
movzx ecx, word [ecx*2 + 0x6233b0]
mov dword [esp + 0x38], edx
movzx eax, byte [eax + 0x623540]
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 0x5776c8
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.00575500
mov ecx, dword [esp + 0x34]
mov ebp, eax
dec ecx
cmp ebx, ecx
jae 0x577585
cmp dword [esp + 0x24], 9
jl 0x577248
mov edx, esi
mov ecx, ebp
lfence
call fcn.005765b0
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 0x5774f0
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 0x577605
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 0x5775a0
cmp ecx, 5
jne 0x577605
mov edx, dword [esp + 0x14]
not edx
sub edx, edi
test edx, edx
jle 0x5775fe
cmp edx, 0x3c
jge 0x5775f7
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 0x5775fe
mov edi, 1
jmp 0x577610
mov edi, 2
jmp 0x577610
mov eax, 5
cmp eax, ecx
sbb edi, edi
neg edi
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x577637
mov eax, dword ds:[esp + 0x50]
sub eax, esi
cmp eax, ebx
jl 0x577248
push esi
mov edx, ebp
mov ecx, ebx
lfence
call fcn.00576640
add esi, ebx
test edi, edi
je 0x5776fb
mov ebx, dword [esp + 0x44]
mov eax, esi
mov ebp, dword [esp + 0x50]
mov edx, ebp
cmp esi, ebx
je 0x577671
nop
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x2e
jne 0x57765d
mov edx, eax
jmp 0x57766d
nop dword [eax]
cmp cl, 0x39
jne 0x5776a3
mov byte [eax], 0x30
mov edi, 1
cmp eax, ebx
jne 0x577650
mov byte [eax], 0x31
cmp edx, ebp
je 0x57767d
mov word [edx], 0x2e30
nop dword [eax]
cmp esi, ebp
je 0x57724c
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 0x5776ad
test cl, 1
je 0x5776fb
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 0x577248
jmp 0x5776e9
mov eax, ebp
sub eax, esi
cmp eax, edi
jl 0x57724c
test edi, edi
je 0x5776f9
push edi
push 0x30
push esi
call fcn.005861b0
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