Function at 0x4016e0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
movsd xmm0, qword [0x4ab038]
sub esp, 0x1c
movsd xmm2, qword [0x49cfa8]
movss xmm3, dword [0x49cfa4]
subsd xmm0, xmm2
movsd qword [0x4ab038], xmm0
movsd xmm1, qword [0x4ab038]
mov eax, dword [0x4ab2f0]
subsd xmm1, qword [0x49ff78]
sub eax, 0x150c7de9
movd xmm0, eax
cvtdq2pd xmm0, xmm0
comisd xmm1, xmm0
jb 0x4017cf
mov eax, dword [0x4ab104]
add eax, 0x726fd00d
cmp eax, 0xea27a9bb
jle 0x4017a2
movss xmm0, dword [0x4ab40c]
movsd xmm1, qword [0x4ab010]
mov eax, dword [0x4ab3f0]
cvtps2pd xmm0, xmm0
addsd xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [0x4ab3f0], eax
movsd xmm0, qword [0x4ab010]
addsd xmm0, xmm2
movsd qword [0x4ab010], xmm0
movss xmm0, dword [0x4ab40c]
addss xmm0, xmm3
movss dword [0x4ab40c], xmm0
jmp 0x4017cf
movsd xmm0, qword [0x4ab510]
subsd xmm0, qword [0x49e540]
cvttsd2si eax, xmm0
mov dword [0x4ab044], eax
movsd xmm0, qword [0x4ab510]
subsd xmm0, xmm2
movsd qword [0x4ab510], xmm0
movsd xmm0, qword [0x4ab4d0]
mov ecx, 0xcd26e523
mov eax, dword [0x4ab1d0]
movsd xmm1, qword [0x49fee0]
subsd xmm1, xmm0
mov dword [ebp - 0xc], 0
push ebx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
push esi
push edi
push 0x41
push 0x380e
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [0x4ab1d0], eax
movsd xmm0, qword [0x4ab4d0]
addsd xmm0, xmm2
movsd qword [0x4ab4d0], xmm0
mov eax, dword [0x4ab3f0]
sub ecx, eax
mov eax, dword [0x4ab3d8]
add eax, ecx
mov dword [0x4ab2c8], eax
movss xmm0, dword [0x4ab2d4]
subss xmm0, xmm3
movss dword [0x4ab2d4], xmm0
mov eax, dword [0x4ab068]
movss xmm1, dword [0x4ab1c4]
movss xmm0, dword [0x4ab2d4]
movd xmm2, eax
cvtdq2ps xmm2, xmm2
subss xmm2, xmm0
subss xmm1, xmm2
movss dword [0x4ab1c4], xmm1
movzx eax, word [0x4ab2b4]
sub eax, 0x6728a59f
mov word [0x4ab2b4], ax
movsx eax, word [0x4ab180]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [0x4ab1a0], xmm0
dec word [0x4ab180]
call fcn.00414350
movsx ecx, word [0x4ab0a8]
mov ebx, eax
movsd xmm0, qword [0x4ab0a0]
push 5
push 0x2267
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mov dword [ebp - 0x10], ebx
subsd xmm1, xmm0
cvttsd2si ecx, xmm1
mov word [0x4ab0a8], cx
call fcn.00414350
mov ecx, dword [0x4ab114]
mov esi, eax
add ecx, dword [0x4ab3fc]
lea eax, [ebp - 0x14]
mov dword [0x4ab3fc], ecx
movsx ecx, byte [ebx + 0x3e]
push ecx
push esi
push 4
push eax
call fcn.00407e20
movzx eax, word [0x4ab1b4]
movzx ecx, word [0x4ab118]
cwde
imul ecx, eax
push 5
push 0x2267
mov word [0x4ab118], cx
dec word [0x4ab1b4]
call fcn.00414350
dec dword [0x4ab37c]
mov edx, 0x4e706492
mov ecx, dword [0x4ab37c]
mov edi, eax
sub edx, ecx
movd xmm0, edx
cvtdq2ps xmm0, xmm0
push esi
push 5
movss dword [0x4ab09c], xmm0
call fcn.004083d0
mov eax, dword [0x4ab0cc]
movzx ecx, word [0x4ab0b8]
add eax, 0x46f7423b
imul ecx, eax
mov word [0x4ab0b8], cx
inc dword [0x4ab0cc]
movsx eax, byte [ebx + 0x3f]
push eax
push edi
lea eax, [ebp - 0x18]
push 4
push eax
call fcn.00407e20
movss xmm0, dword [0x4ab080]
add esp, 0x40
mov eax, dword [0x4ab3ac]
subss xmm0, dword [0x49e870]
push 5
movd xmm1, eax
cvtdq2ps xmm1, xmm1
push 0x2267
addss xmm1, xmm0
movss xmm0, dword [0x4ab4c0]
addss xmm0, xmm1
movss dword [0x4ab4c0], xmm0
inc dword [0x4ab3ac]
call fcn.00414350
movss xmm0, dword [0x4ab1bc]
mov esi, eax
addss xmm0, dword [0x49ea1c]
push edi
push 5
movss dword [0x4ab1bc], xmm0
call fcn.004083d0
movss xmm0, dword [0x4ab4b4]
lea eax, [ebp - 0x1c]
mulss xmm0, dword [0x49ece4]
push 0x3d
push esi
push 4
push eax
movss dword [0x4ab4b4], xmm0
call fcn.00407e20
movsd xmm2, qword [0x4ab490]
add esp, 0x20
mov eax, dword [0x4ab4a4]
movsd xmm0, qword [0x4ab138]
sub eax, 0x6ec33f21
subsd xmm2, qword [0x49d5f8]
dec dword [0x4ab4a4]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
subsd xmm1, xmm0
comisd xmm2, xmm1
jbe 0x401ac8
movss xmm1, dword [0x4ab3b0]
mov eax, dword [0x4ab164]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
movsd xmm0, qword [0x4ab188]
addss xmm1, dword [0x49eaec]
cvtps2pd xmm1, xmm1
ucomisd xmm1, xmm0
movsd xmm0, qword [0x4ab188]
subsd xmm0, qword [0x49cfa8]
lahf
movsd qword [0x4ab188], xmm0
test ah, 0x44
jnp 0x401ac8
movsd xmm0, qword [0x4ab0d0]
subsd xmm0, qword [0x49f758]
movsd qword [0x4ab0d0], xmm0
push esi
push 5
call fcn.004083d0
mov ax, word [0x4ab158]
add esp, 8
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
movsx ecx, ax
mov eax, dword [0x4ab370]
add eax, 0x7e16eb56
add eax, ecx
mov word [0x4ab158], ax
inc dword [0x4ab370]
test esi, esi
je 0x402087
movss xmm3, dword [0x49cfa4]
xor edx, edx
mov edi, dword [ebp - 0x10]
nop
movzx eax, word [0x4ab3d0]
dec esi
movzx ecx, word [0x4ab004]
cwde
sub ecx, eax
mov dword [ebp + 0xc], esi
sub ecx, 0x3615a1f9
mov word [0x4ab004], cx
movzx eax, word [0x4ab27c]
add eax, 0x761ad957
mov word [0x4ab27c], ax
mov eax, dword [ebp + 8]
mov al, byte [eax]
mov byte [ebp + edx - 4], al
inc edx
movsx eax, word [0x4ab124]
movss xmm0, dword [0x4ab078]
movd xmm1, eax
movsx eax, word [0x4ab228]
cvtdq2ps xmm1, xmm1
subss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, dword [0x49f2dc]
addss xmm0, xmm1
cvttss2si eax, xmm0
mov word [0x4ab228], ax
movss xmm0, dword [0x4ab11c]
addss xmm0, xmm3
movss dword [0x4ab11c], xmm0
movsx eax, word [0x4ab074]
movss xmm1, dword [0x4ab11c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movss xmm0, dword [0x49f438]
comiss xmm0, xmm1
jb 0x401be3
mov ax, word [0x4ab0b8]
mov ecx, dword [0x4ab38c]
cwde
sub ecx, eax
mov eax, dword [0x4ab130]
sub ecx, eax
mov dword [0x4ab38c], ecx
inc dword [0x4ab334]
mov eax, dword [0x4ab334]
movsd xmm0, qword [0x4ab4d0]
inc dword [ebp + 8]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
addsd xmm0, xmm1
movsd qword [0x4ab4d0], xmm0
cmp edx, 3
jne 0x402072
mov eax, dword [0x4ab174]
movsd xmm0, qword [0x4ab510]
movsd xmm1, qword [0x49d1a8]
subsd xmm1, xmm0
movd xmm2, eax
cvtdq2pd xmm2, xmm2
subsd xmm2, xmm1
cvttsd2si eax, xmm2
mov dword [0x4ab174], eax
movsd xmm0, qword [0x4ab510]
addsd xmm0, qword [0x49cfa8]
mov al, byte [ebp - 4]
shr al, 2
mov byte [ebp - 8], al
movsd qword [0x4ab510], xmm0
movss xmm0, dword [0x4ab0fc]
addss xmm0, xmm3
movss dword [0x4ab0fc], xmm0
movsd xmm2, qword [0x4ab420]
movss xmm0, dword [0x4ab1d4]
movsd xmm1, qword [0x4ab390]
cvtps2pd xmm0, xmm0
subsd xmm2, xmm0
movss xmm0, dword [0x4ab0fc]
cvtps2pd xmm0, xmm0
subsd xmm2, xmm0
subsd xmm1, xmm2
movsd qword [0x4ab390], xmm1
movss xmm0, dword [0x4ab1d4]
addss xmm0, xmm3
movss dword [0x4ab1d4], xmm0
movsd xmm0, qword [0x4ab420]
subsd xmm0, qword [0x49cfa8]
mov al, byte [ebp - 4]
and al, dl
shl al, 4
mov byte [ebp - 7], al
movsd qword [0x4ab420], xmm0
add dword [0x4ab0ac], 0x91cd0d0b
mov al, byte [ebp - 3]
shr al, 4
add byte [ebp - 7], al
mov eax, dword [0x4ab1e8]
movss xmm0, dword [0x4ab404]
subss xmm0, dword [0x49e888]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm1, xmm0
cvttss2si eax, xmm1
mov dword [0x4ab1e8], eax
movss xmm0, dword [0x4ab404]
mov al, byte [ebp - 3]
subss xmm0, xmm3
and al, 0xf
shl al, 2
mov byte [ebp - 6], al
movss dword [0x4ab404], xmm0
mov eax, dword [0x4ab38c]
movsd xmm0, qword [0x4ab4f8]
sub eax, 0x60c97044
mov cl, byte [ebp - 2]
movd xmm1, eax
mov al, cl
cvtdq2pd xmm1, xmm1
shr al, 6
add byte [ebp - 6], al
mov eax, 0xffffbf11
and cl, 0x3f
mov byte [ebp - 5], cl
mulsd xmm0, xmm1
movsd qword [0x4ab4f8], xmm0
mov word [0x4ab408], ax
movss xmm0, dword [0x4ab40c]
addss xmm0, xmm3
movss dword [0x4ab40c], xmm0
mov eax, dword [0x4ab2c0]
movd xmm2, eax
mov eax, dword [0x4ab16c]
cvtdq2ps xmm2, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss xmm0, dword [0x4ab40c]
subss xmm1, xmm0
subss xmm1, dword [0x4a04d0]
subss xmm2, xmm1
cvttss2si eax, xmm2
mov dword [0x4ab2c0], eax
dec dword [0x4ab16c]
xor esi, esi
movsx eax, word [0x4ab47c]
movss xmm1, dword [0x4ab09c]
movd xmm0, eax
mov eax, dword [0x4ab380]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
cvttss2si eax, xmm1
mov word [0x4ab350], ax
cmp byte [ebp + 0x10], 0
movss xmm0, dword [0x4ab21c]
mulss xmm0, dword [0x4a04a4]
movss dword [0x4ab21c], xmm0
je 0x401f27
mov al, byte [ebp + esi - 8]
cmp al, 0x3d
jbe 0x401f27
add dword [0x4ab370], 0xd0ef65b5
cmp al, 0x3e
jne 0x401ec6
mov ax, word [0x4ab034]
movsx ecx, ax
mov eax, dword [0x4ab198]
add eax, 0x3d7d7b4e
add eax, ecx
mov ecx, ebx
mov word [0x4ab034], ax
lea eax, [ebp - 0x14]
push eax
call fcn.004211b0
movsx eax, word [0x4ab348]
movss xmm1, dword [0x4ab1c0]
movd xmm2, eax
movsx eax, word [0x4ab430]
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
subss xmm2, xmm1
cvttss2si eax, xmm2
mov word [0x4ab348], ax
movss xmm0, dword [0x4ab1c0]
subss xmm0, dword [0x49cfa4]
movss dword [0x4ab1c0], xmm0
jmp 0x401f0a
mov ax, word [0x4ab2b0]
mov ecx, ebx
movss xmm0, dword [0x4ab384]
lea eax, [ebp - 0x18]
dec word [0x4ab2b0]
push eax
call fcn.004211b0
dec dword [0x4ab104]
movsx eax, word [0x4ab39c]
add eax, 0xd890c916
cmp eax, dword [0x4ab104]
jl 0x401f0a
mov dword [0x4ab4ac], 0xd76b53aa
movsd xmm0, qword [0x4ab368]
mulsd xmm0, qword [0x49e178]
movsd qword [0x4ab368], xmm0
jmp 0x401fb9
movss xmm0, dword [0x4ab028]
mov ecx, ebx
addss xmm0, xmm3
movss dword [0x4ab028], xmm0
mov eax, dword [0x4ab274]
movss xmm1, dword [0x4ab184]
movss xmm0, dword [0x4ab028]
addss xmm1, xmm0
movss xmm0, dword [0x4ab1f8]
movd xmm2, eax
cvtdq2ps xmm2, xmm2
addss xmm0, xmm1
subss xmm2, xmm0
cvttss2si eax, xmm2
mov dword [0x4ab274], eax
movzx eax, byte [ebp + esi - 8]
movzx eax, byte [eax + edi]
push eax
call fcn.00447ae0
inc word [0x4ab040]
movsx eax, word [0x4ab040]
movss xmm1, dword [0x4ab0e0]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
subss xmm1, dword [0x4a05ec]
cvtps2pd xmm0, xmm1
movsd qword [0x4ab428], xmm0
dec dword [0x4ab168]
inc esi
movsx ecx, word [0x4ab438]
mov eax, dword [0x4ab168]
add eax, 0xcc48ae25
add eax, ecx
add dword [0x4ab37c], eax
inc word [0x4ab324]
movsx eax, word [0x4ab324]
sub eax, 0x3925c26b
cmp eax, 0x29f67a8b
jle 0x402007
movzx eax, word [0x4ab034]
sub eax, 0x703ce26c
mov word [0x4ab034], ax
jmp 0x40201f
movsd xmm0, qword [0x4ab4c8]
subsd xmm0, qword [0x49fcc8]
movsd qword [0x4ab4c8], xmm0
movss xmm3, dword [0x49cfa4]
cmp esi, 4
jne 0x401e10
mov eax, dword [0x4ab3fc]
xor edx, edx
mov ecx, dword [0x4ab06c]
add eax, 0x88578a66
mov esi, dword [ebp + 0xc]
add ecx, eax
mov dword [0x4ab3fc], ecx
mov ax, word [0x4ab324]
movsx ecx, ax
mov eax, dword [0x4ab1b0]
sub ecx, eax
sub ecx, 0x7b574d6
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [0x4ab4d8], xmm0
add dword [str.0_ZbKe], 0xf967b6e5
test esi, esi
jne 0x401b10
mov dword [ebp - 0xc], edx
mov eax, dword [0x4ab20c]
movsd xmm0, qword [0x4ab4c8]
mov esi, dword [ebp - 0xc]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
addsd xmm0, xmm1
movsd qword [0x4ab4c8], xmm0
test esi, esi
je 0x4029f9
movsx eax, word [0x4ab258]
mov ecx, 0x757715ef
sub ecx, eax
cmp ecx, 0xf2c61383
jne 0x4020e9
movss xmm1, dword [0x4ab0f8]
mov eax, dword [0x4ab104]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
movss dword [0x4ab0f8], xmm1
movss xmm0, dword [0x4ab35c]
movss xmm3, dword [0x49cfa4]
movsd xmm4, qword [0x49cfa8]
addss xmm0, dword [0x4ab4b4]
subss xmm0, dword [0x49efc0]
movss dword [0x4ab23c], xmm0
movss xmm0, dword [0x4ab4b4]
subss xmm0, xmm3
movss dword [0x4ab4b4], xmm0
cmp esi, 3
jge 0x402217
mov ecx, 3
movsd xmm2, qword [0x49f728]
sub ecx, esi
movss xmm5, dword [0x49f3b4]
mov dword [ebp + 0xc], ecx
lea edi, [ebp - 4]
mov edx, ecx
movss xmm6, dword [0x49f4fc]
shr ecx, 2
add edi, esi
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
nop dword [eax]
movsd xmm0, qword [0x4ab4e0]
subsd xmm0, xmm4
movsd qword [0x4ab4e0], xmm0
movsd xmm1, qword [0x4ab4e0]
movss xmm0, dword [0x4ab40c]
subsd xmm1, xmm2
cvtps2pd xmm0, xmm0
subsd xmm1, xmm0
movss xmm0, dword [0x4ab400]
cvtps2pd xmm0, xmm0
addsd xmm0, xmm1
movaps xmm1, xmm5
cvtpd2ps xmm0, xmm0
movss dword [0x4ab400], xmm0
movss xmm0, dword [0x4ab40c]
subss xmm0, xmm3
movss dword [0x4ab40c], xmm0
movss xmm0, dword [0x4ab2e0]
subss xmm1, xmm0
comiss xmm1, xmm6
jb 0x4021f4
movzx eax, word [0x4ab074]
add eax, 0x44321080
mov word [0x4ab074], ax
movzx eax, word [0x4ab418]
sub eax, 0x5e442260
mov word [0x4ab124], ax
inc word [0x4ab418]
sub dword [ebp + 0xc], 1
jne 0x402170
add dword [0x4ab270], 0x3f725602
movss xmm0, dword [0x4ab50c]
mov al, byte [ebp - 4]
addss xmm0, xmm3
shr al, 2
mov byte [ebp - 8], al
movss dword [0x4ab50c], xmm0
movsd xmm2, qword [0x4ab298]
movss xmm1, dword [0x4ab50c]
mov eax, dword [0x4ab3dc]
movd xmm0, eax
mov al, byte [ebp - 4]
cvtdq2ps xmm0, xmm0
and al, 3
shl al, 4
mov byte [ebp - 7], al
subss xmm1, xmm0
cvtps2pd xmm0, xmm1
subsd xmm2, xmm0
movsd qword [0x4ab298], xmm2
movsx eax, word [0x4ab3c4]
movss xmm0, dword [0x4ab1b8]
movd xmm1, eax
mov al, byte [ebp - 3]
cvtdq2ps xmm1, xmm1
shr al, 4
add byte [ebp - 7], al
mulss xmm0, xmm1
movss dword [0x4ab1b8], xmm0
movss xmm1, dword [0x4ab474]
subss xmm1, dword [0x49e880]
movss xmm0, dword [0x49f1f4]
addss xmm1, dword [0x49e800]
ucomiss xmm0, xmm1
movss xmm0, dword [0x4ab474]
subss xmm0, xmm3
lahf
movss dword [0x4ab474], xmm0
test ah, 0x44
jnp 0x4022f8
movss xmm0, dword [0x4ab414]
mulss xmm0, dword [0x4a0254]
movss dword [0x4ab414], xmm0
mov al, byte [ebp - 3]
and al, 0xf
shl al, 2
mov byte [ebp - 6], al
mov eax, dword [0x4ab378]
mov ecx, dword [0x4ab164]
add eax, 0xd90f523a
inc dword [0x4ab164]
add ecx, eax
inc dword [0x4ab378]
cmp ecx, 0x1283c415
jl 0x402352
movss xmm1, dword [0x4ab0fc]
mov eax, dword [0x4ab374]
subss xmm1, dword [0x49ea4c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [0x4ab374], eax
mov al, byte [ebp - 2]
mov ecx, 0x34afa2ad
shr al, 6
xor edi, edi
add byte [ebp - 6], al
mov eax, dword [0x4ab104]
sub ecx, eax
mov eax, dword [0x4ab3f0]
movsd xmm1, qword [0x49d878]
imul eax, ecx
mov dword [0x4ab3f0], eax
movsd xmm0, qword [0x4ab460]
mov al, byte [ebp - 2]
subsd xmm0, xmm4
and al, 0x3f
mov byte [ebp - 5], al
movsd qword [0x4ab460], xmm0
mov eax, dword [0x4ab168]
movsd xmm0, qword [0x4ab460]
subsd xmm1, xmm0
movd xmm2, eax
cvtdq2pd xmm2, xmm2
subsd xmm2, xmm1
cvttsd2si eax, xmm2
mov dword [0x4ab168], eax
inc word [0x4ab15c]
movsx eax, word [0x4ab15c]
movsd xmm1, qword [0x4ab338]
add eax, 0x70d3be75
subsd xmm1, qword [0x4ab220]
movsd xmm0, qword [0x4ab220]
subsd xmm0, xmm4
movd xmm2, eax
cvtdq2pd xmm2, xmm2
movsd qword [0x4ab220], xmm0
comisd xmm1, xmm2
jb 0x402426
movsx eax, word [0x4ab08c]
mov ecx, dword [0x4ab3f0]
add eax, 0x8836cd17
add ecx, eax
mov word [0x4ab08c], cx
dec dword [0x4ab3f0]
movsx eax, word [0x4ab290]
mov ecx, 0x58da4a91
sub ecx, eax
movsx eax, word [0x4ab260]
sub ecx, eax
movzx eax, word [0x4ab388]
imul eax, ecx
mov word [0x4ab388], ax
test esi, esi
js 0x4027d8
mov edx, 0xfffff377
nop word [eax + eax]
inc dword [0x4ab444]
mov ecx, 0xc00d909c
mov eax, dword [0x4ab444]
sub ecx, eax
add dword [0x4ab02c], ecx
cmp byte [ebp + 0x10], 0
je 0x40266e
mov cl, byte [ebp + edi - 8]
cmp cl, 0x3d
jbe 0x40266e
dec dword [0x4ab114]
inc word [0x4ab458]
movsd xmm1, qword [0x4ab090]
mov eax, dword [0x4ab114]
movd xmm0, eax
movsx eax, word [0x4ab458]
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jnp 0x40251c
movsd xmm0, qword [0x4ab4e8]
movsd xmm1, qword [0x49fab8]
addsd xmm0, xmm4
movsd qword [0x4ab4e8], xmm0
movsd xmm0, qword [0x4ab4e8]
addsd xmm0, qword [0x49d920]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jnp 0x40251c
movsd xmm0, qword [0x4ab488]
mulsd xmm0, qword [0x4ab138]
movsd qword [0x4ab488], xmm0
cmp cl, 0x3e
mov ecx, ebx
jne 0x4025d5
movsd xmm0, qword [0x4ab490]
addsd xmm0, qword [0x49e488]
cvttsd2si eax, xmm0
mov dword [0x4ab190], eax
lea eax, [ebp - 0x14]
push eax
call fcn.004211b0
movss xmm2, dword [0x4ab19c]
mov ecx, 0x95153817
mov eax, dword [0x4ab38c]
movd xmm0, eax
mov eax, dword [0x4ab478]
sub ecx, eax
mov eax, dword [0x4ab170]
inc dword [0x4ab38c]
add eax, ecx
cvtdq2ps xmm0, xmm0
movd xmm1, eax
subss xmm2, xmm0
movss xmm0, dword [0x4ab19c]
subss xmm0, dword [0x49cfa4]
cvtdq2ps xmm1, xmm1
movss dword [0x4ab19c], xmm0
comiss xmm2, xmm1
jb 0x402651
inc word [0x4ab434]
movsx eax, word [0x4ab434]
movss xmm0, dword [0x4ab0d8]
add eax, 0x660c4627
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm1
movss dword [0x4ab0d8], xmm0
jmp 0x402651
movsd xmm0, qword [0x4ab090]
subsd xmm0, xmm4
movsd qword [0x4ab090], xmm0
movsd xmm1, qword [0x4ab090]
mov eax, dword [0x4ab1d0]
movd xmm0, eax
lea eax, [ebp - 0x18]
cvtdq2pd xmm0, xmm0
push eax
subsd xmm1, xmm0
addsd xmm1, qword [0x49e660]
cvtpd2ps xmm0, xmm1
movss dword [0x4ab300], xmm0
inc dword [0x4ab1d0]
call fcn.004211b0
movss xmm1, dword [0x4ab0f8]
movsx eax, word [0x4ab160]
subss xmm1, dword [0x49ee1c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
cvttss2si eax, xmm0
mov word [0x4ab160], ax
movss xmm0, dword [0x4ab1bc]
subss xmm0, dword [0x4a010c]
movss dword [0x4ab1bc], xmm0
jmp 0x40277f
inc word [0x4ab2a0]
movsx eax, word [0x4ab2a0]
add eax, 0x4b9ac949
cmp eax, 0x7ae1a245
jne 0x40268f
mov word [0x4ab4bc], dx
mov ecx, dword [ebp - 0x10]
movzx eax, byte [ebp + edi - 8]
movzx eax, byte [eax + ecx]
mov ecx, ebx
push eax
call fcn.00447ae0
movsx eax, word [0x4ab410]
movss xmm1, dword [0x4ab150]
movd xmm0, eax
mov eax, dword [0x4ab030]
inc dword [0x4ab030]
inc word [0x4ab410]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
comiss xmm1, dword [0x49eba0]
jb 0x402758
movsd xmm0, qword [0x4ab340]
addsd xmm0, qword [0x49d208]
movsd xmm1, qword [0x49f9d8]
movss xmm3, dword [0x49cfa4]
comisd xmm1, xmm0
jbe 0x402787
mov eax, dword [0x4ab2bc]
movss xmm0, dword [0x4ab2e0]
sub eax, 0x36976f33
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm1, xmm0
movss xmm0, dword [0x4ab184]
mulss xmm0, xmm1
movss dword [0x4ab184], xmm0
movss xmm0, dword [0x4ab2e0]
addss xmm0, xmm3
movss dword [0x4ab2e0], xmm0
jmp 0x402787
inc word [0x4ab310]
movsx eax, word [0x4ab310]
cmp eax, 0xc77df6ec
jge 0x40277f
movzx eax, word [0x4ab0bc]
add eax, 0x25a3ff86
mov word [0x4ab0bc], ax
movss xmm3, dword [0x49cfa4]
movsd xmm4, qword [0x49cfa8]
mov ecx, 0x58da4a91
mov dword [0x4ab26c], 0x4eddd98f
inc edi
add dword [0x4ab190], 0x2af2433f
mov edx, 0xfffff377
movsx eax, word [0x4ab290]
sub ecx, eax
movsx eax, word [0x4ab260]
sub ecx, eax
movzx eax, word [0x4ab388]
imul eax, ecx
mov word [0x4ab388], ax
cmp edi, esi
jle 0x402460
movsx eax, word [0x4ab040]
movsd xmm0, qword [0x4ab2a8]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
movsd qword [0x4ab2a8], xmm0
dec word [0x4ab040]
cmp esi, 3
jge 0x4029a7
mov edi, 3
sub edi, esi
nop dword [eax]
nop word [eax + eax]
movss xmm1, dword [0x4ab2a4]
subss xmm1, dword [0x4ab50c]
movss xmm0, dword [0x4ab50c]
subss xmm0, xmm3
addss xmm1, dword [0x49ea14]
movss dword [0x4ab50c], xmm0
movss xmm0, dword [0x4ab2a4]
addss xmm0, xmm3
movss dword [0x4ab2a4], xmm0
movss xmm0, dword [0x4a0138]
comiss xmm0, xmm1
jbe 0x40287c
imul eax, dword [0x4ab2bc], 0xc18314cc
mov dword [0x4ab2bc], eax
mov eax, dword [0x4ab2bc]
sub dword [0x4ab38c], eax
cmp byte [ebp + 0x10], 0
je 0x4028cc
mov eax, dword [0x4ab2c0]
mov ecx, ebx
movss xmm0, dword [0x4ab070]
movd xmm1, eax
lea eax, [ebp - 0x1c]
cvtdq2ps xmm1, xmm1
push eax
addss xmm0, xmm1
movss dword [0x4ab070], xmm0
call fcn.004211b0
mov eax, dword [0x4ab2e4]
add eax, 0x2e9f7d31
mov dword [0x4ab314], eax
jmp 0x402962
movsd xmm1, qword [0x4ab2d8]
movsx eax, word [0x4ab430]
addsd xmm1, qword [0x49dae0]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
inc word [0x4ab430]
movsd xmm0, qword [0x4ab2d8]
subsd xmm0, xmm4
movsd qword [0x4ab2d8], xmm0
test ah, 0x44
jnp 0x402933
movss xmm0, dword [0x4ab3b0]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x4ab338]
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [0x4ab3b0], xmm0
push 0x3d
mov ecx, ebx
call fcn.00447ae0
inc dword [0x4ab020]
movzx eax, word [0x4ab408]
mov ecx, dword [0x4ab020]
cwde
sub ecx, eax
movzx eax, word [0x4ab3d0]
imul eax, ecx
mov word [0x4ab3d0], ax
movss xmm1, dword [0x4ab110]
movsx eax, word [0x4ab508]
movss xmm3, dword [0x49cfa4]
movsd xmm4, qword [0x49cfa8]
addss xmm1, dword [0x49e7d0]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
cvttss2si eax, xmm0
mov word [0x4ab508], ax
sub edi, 1
jne 0x402820
movsx eax, word [0x4ab22c]
mov ecx, 0x3138d5f0
sub ecx, eax
mov eax, dword [0x4ab270]
inc dword [0x4ab270]
cmp eax, ecx
jge 0x4029d9
movzx eax, word [0x4ab0a8]
imul eax, eax, 0xedf78a06
mov word [0x4ab0a8], ax
jmp 0x4029f9
movsd xmm0, qword [0x4ab0e8]
movsd xmm0, qword [0x4ab0e8]
subsd xmm0, qword [0x49cfa8]
movsd qword [0x4ab0e8], xmm0
mov eax, dword [0x4ab3f0]
mov ecx, 0x1ff8ed17
movss xmm0, dword [0x4ab26c]
sub ecx, eax
push dword [ebp - 0x10]
push 0x41
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
addss xmm0, xmm1
movss dword [0x4ab26c], xmm0
call fcn.004083d0
movsx eax, word [0x4ab15c]
add esp, 8
movss xmm1, dword [0x4ab2b8]
movd xmm0, eax
movsx eax, word [0x4ab260]
inc word [0x4ab15c]
sub eax, 0x21fbcb81
cvtdq2ps xmm0, xmm0
pop edi
pop esi
pop ebx
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, dword [0x4a039c]
comiss xmm1, xmm0
jb 0x402aa5
movsx eax, word [0x4ab3f8]
dec word [0x4ab3f8]
add eax, 0x5053b2a1
cmp eax, 0x5ab9d49
je 0x402ae6
movss xmm0, dword [0x4ab35c]
subss xmm0, dword [0x4a04e0]
movss dword [0x4ab35c], xmm0
jmp 0x402ae6
mov ax, word [0x4ab3f4]
movsx ecx, ax
movsx eax, word [0x4ab3f8]
movss xmm1, dword [0x4ab35c]
sub ecx, eax
movsx eax, word [0x4ab018]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
cvttss2si eax, xmm0
mov word [0x4ab018], ax
movsx eax, word [0x4ab0c4]
movsd xmm0, qword [0x4ab0e8]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov word [0x4ab0c4], ax
dec word [0x4ab0b8]
movsx eax, word [0x4ab0b8]
movss xmm0, dword [0x4ab35c]
add eax, 0x33a47791
mov dword [ebp - 0x1c], 0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm0, xmm1
movss dword [0x4ab35c], xmm0
movss xmm2, dword [0x4ab060]
movss xmm1, dword [0x4ab4c4]
movsx eax, word [0x4ab1dc]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
subss xmm2, xmm1
movss dword [0x4ab060], xmm2
mov esp, ebp
pop ebp
ret