Function at 0x4034a0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
movzx eax, word [0x4ad02c]
sub esp, 0x18
add eax, 0x25ca7896
movss xmm3, dword [0x49f178]
mov word [0x4ad02c], ax
movsd xmm0, qword [0x4ad2a0]
cvtpd2ps xmm0, xmm0
push ebx
push esi
xor esi, esi
push edi
movss dword [0x4ad41c], xmm0
mov eax, dword [0x4ad400]
movd xmm2, eax
mov eax, dword [0x4ad400]
movsd xmm1, qword [0x4ad2a0]
cvtdq2pd xmm2, xmm2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm0
addsd xmm1, qword [0x49f228]
subsd xmm2, xmm1
cvttsd2si eax, xmm2
mov dword [0x4ad400], eax
inc dword [0x4ad400]
movsd xmm0, qword [0x4ad2a0]
addsd xmm0, qword [0x49f180]
movsd qword [0x4ad2a0], xmm0
mov dword [0x4ad3b4], 0x6eb46107
inc dword [0x4ad440]
mov eax, dword [0x4ad440]
movss xmm1, dword [0x4ad0f4]
addss xmm1, dword [0x4a1598]
movss xmm0, dword [0x4ad0f4]
movd xmm2, eax
addss xmm0, xmm3
cvtdq2ps xmm2, xmm2
subss xmm1, dword [0x4a2e94]
movss dword [0x4ad0f4], xmm0
comiss xmm1, xmm2
jbe 0x4035ca
movss xmm0, dword [0x4ad43c]
addss xmm0, xmm3
movss dword [0x4ad43c], xmm0
mov eax, dword [0x4ad0e4]
movd xmm2, eax
mov eax, dword [0x4ad0b4]
movss xmm1, dword [0x4ad43c]
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
subss xmm2, xmm1
cvttss2si eax, xmm2
mov dword [0x4ad0e4], eax
inc dword [0x4ad0b4]
push 0x41
push 0x3e98
call fcn.00420e30
movss xmm0, dword [0x4ad288]
mov ebx, eax
subss xmm0, dword [0x4a2fd0]
push 5
push 0x342
mov dword [ebp - 0xc], ebx
movss dword [0x4ad288], xmm0
call fcn.00420e30
movsx ecx, word [0x4ad390]
mov edi, eax
movss xmm1, dword [0x4ad438]
subss xmm1, dword [0x4a1d9c]
movd xmm2, ecx
mov ecx, dword [0x4ad3c0]
cvtdq2ps xmm2, xmm2
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
subss xmm2, xmm0
cvttss2si eax, xmm2
mov word [0x4ad390], ax
movss xmm0, dword [0x4ad438]
addss xmm0, dword [0x49f178]
movss dword [0x4ad438], xmm0
movsx eax, byte [ebx + 0x3e]
push eax
push edi
lea eax, [ebp - 0x10]
push 4
push eax
call fcn.00406240
movss xmm0, dword [0x4ad448]
cvttss2si eax, xmm0
push 5
push 0x342
mov word [0x4ad038], ax
call fcn.00420e30
mov ecx, dword [0x4ad0b4]
add esp, 0x28
movsd xmm1, qword [0x4ad3f0]
mov ebx, eax
subsd xmm1, qword [0x49fef8]
movsd xmm0, qword [0x4ad3f0]
addsd xmm0, qword [0x49f180]
movd xmm2, ecx
cvtdq2pd xmm2, xmm2
subsd xmm1, qword [0x4a2950]
movsd qword [0x4ad3f0], xmm0
comisd xmm2, xmm1
jb 0x40371b
mov eax, dword [0x4ad194]
movss xmm0, dword [0x4ad344]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm0, xmm1
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x4ad378]
addsd xmm0, xmm1
movsd qword [0x4ad378], xmm0
inc dword [0x4ad194]
movss xmm0, dword [0x4ad344]
subss xmm0, dword [0x49f178]
movss dword [0x4ad344], xmm0
push edi
push 5
call fcn.00411590
movss xmm0, dword [0x4ad330]
mulss xmm0, dword [0x4a1c4c]
mov eax, dword [ebp - 0xc]
movss dword [0x4ad330], xmm0
movsx eax, byte [eax + 0x3f]
push eax
push ebx
lea eax, [ebp - 0x14]
push 4
push eax
call fcn.00406240
movss xmm2, dword [0x4ad348]
add esp, 0x18
mov eax, dword [0x4ad010]
subss xmm2, dword [0x4a1b0c]
movss xmm1, dword [0x4a2fa0]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm2, xmm0
movss xmm0, dword [0x4ad348]
addss xmm0, dword [0x49f178]
comiss xmm1, xmm2
movss dword [0x4ad348], xmm0
jb 0x4037c5
movsd xmm0, qword [0x4ad1f8]
mov eax, dword [0x4ad414]
movsd xmm1, qword [0x4a2328]
subsd xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [0x4ad414], eax
push 5
push 0x342
call fcn.00420e30
movss xmm0, dword [0x4ad454]
mov edi, eax
subss xmm0, dword [0x49f178]
push ebx
push 5
movss dword [0x4ad454], xmm0
movss xmm1, dword [0x4ad454]
subss xmm1, dword [0x4a2da4]
movss xmm0, dword [0x4ad450]
addss xmm0, xmm1
movss dword [0x4ad450], xmm0
call fcn.00411590
mov eax, dword [0x4ad1b4]
add esp, 0x10
movsd xmm0, qword [0x4ad2a0]
movsd xmm2, qword [0x4ad140]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
subsd xmm1, xmm0
movsd xmm0, qword [0x4ad168]
mov eax, dword [0x4ad52c]
subsd xmm0, qword [0x49fd38]
addsd xmm2, xmm1
movd xmm1, eax
cvtdq2pd xmm1, xmm1
addsd xmm1, xmm0
movsd xmm0, qword [0x4ad168]
addsd xmm0, qword [0x49f180]
comisd xmm1, xmm2
movsd qword [0x4ad168], xmm0
movsd xmm0, qword [0x4ad2a0]
subsd xmm0, qword [0x49f180]
movsd qword [0x4ad2a0], xmm0
jb 0x4038ca
mov eax, dword [0x4ad1d0]
movss xmm1, dword [0x4ad248]
movd xmm0, eax
movsx eax, word [0x4ad510]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
cvttss2si eax, xmm0
mov word [0x4ad510], ax
push 0x3d
push edi
lea eax, [ebp - 0x18]
push 4
push eax
call fcn.00406240
imul eax, dword [0x4ad3c4], 0x84bdedcb
push edi
push 5
mov dword [0x4ad3c4], eax
call fcn.00411590
movss xmm0, dword [0x4ad410]
add esp, 0x18
movss xmm4, dword [0x49f178]
movsd xmm3, qword [0x49f180]
subss xmm0, xmm4
movss dword [0x4ad410], xmm0
movsx eax, word [0x4ad4ac]
movss xmm0, dword [0x4ad410]
add eax, 0xde3c69
movsd xmm1, qword [0x4ad070]
cvtps2pd xmm0, xmm0
movd xmm2, eax
addsd xmm1, xmm0
movsd xmm0, qword [0x4ad070]
cvtdq2pd xmm2, xmm2
subsd xmm1, qword [0x4a0d40]
subsd xmm0, xmm3
comisd xmm1, xmm2
movsd qword [0x4ad070], xmm0
jbe 0x40398e
movss xmm0, dword [0x4ad4e4]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x4ad2d8]
addsd xmm0, qword [0x49fbd0]
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [0x4ad4e4], xmm0
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
test edi, edi
je 0x40406d
mov bl, byte [ebp + 0x10]
mov ecx, dword [ebp + 8]
movsd xmm0, qword [0x4ad388]
dec edi
mulsd xmm0, qword [0x4a2290]
mov dword [ebp + 0xc], edi
movss xmm1, dword [0x4a16c8]
movsd qword [0x4ad388], xmm0
movss xmm0, dword [0x4ad0c4]
subss xmm1, xmm0
cvttss2si eax, xmm1
mov dword [0x4ad18c], eax
mov al, byte [ecx]
inc ecx
mov byte [ebp + esi - 4], al
inc esi
mov dword [0x4ad4a4], 0xc482f6d
add dword [0x4ad4d8], 0x2810a4cb
add dword [0x4ad528], 0xcaf63b0f
mov dword [ebp + 8], ecx
cmp esi, 3
jne 0x40404d
movsx eax, word [0x4ad430]
movss xmm1, dword [0x4ad3ac]
movd xmm0, eax
movsx eax, word [0x4ad110]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
cvttss2si eax, xmm0
mov word [0x4ad110], ax
movss xmm0, dword [0x4ad3ac]
addss xmm0, xmm4
movss dword [0x4ad3ac], xmm0
inc word [0x4ad430]
movss xmm0, dword [0x4ad094]
mov al, byte [ebp - 4]
addss xmm0, xmm4
shr al, 2
mov byte [ebp - 8], al
movss dword [0x4ad094], xmm0
mov eax, dword [0x4ad4c8]
movss xmm0, dword [0x4ad094]
addss xmm0, dword [0x4a173c]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm1, xmm0
cvttss2si eax, xmm1
movss xmm1, dword [0x4a10cc]
mov dword [0x4ad4c8], eax
movss xmm0, dword [0x4ad00c]
mov al, byte [ebp - 4]
subss xmm1, xmm0
and al, 3
shl al, 4
mov byte [ebp - 7], al
comiss xmm1, dword [0x4a2dc0]
jb 0x403ae7
mov eax, dword [0x4ad350]
mov ecx, 0x7da6ac07
sub ecx, eax
mov eax, dword [0x4ad45c]
imul eax, ecx
mov dword [0x4ad45c], eax
jmp 0x403aff
movsd xmm0, qword [0x4ad2d8]
mulsd xmm0, qword [0x4a0cc8]
movsd qword [0x4ad2d8], xmm0
movss xmm0, dword [0x4ad240]
subss xmm0, dword [0x4a117c]
mov al, byte [ebp - 3]
shr al, 4
add byte [ebp - 7], al
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x4ad1a8]
mov al, byte [ebp - 3]
addsd xmm0, xmm1
and al, 0xf
shl al, 2
mov byte [ebp - 6], al
movsd qword [0x4ad1a8], xmm0
movss xmm2, dword [0x4ad0b8]
mov eax, dword [0x4ad15c]
movss xmm1, dword [0x4ad120]
addss xmm2, dword [0x4a13bc]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm2, dword [0x4a1178]
addss xmm1, xmm0
movss xmm0, dword [0x4ad454]
subss xmm1, xmm0
movss xmm0, dword [0x4ad120]
addss xmm0, xmm4
comiss xmm1, xmm2
movss dword [0x4ad120], xmm0
jb 0x403bad
mov eax, dword [0x4ad0b4]
mov ecx, dword [0x4ad270]
add eax, 0xe8255553
add ecx, eax
mov dword [0x4ad0b4], ecx
inc dword [0x4ad270]
mov al, byte [ebp - 2]
movsd xmm0, qword [0x4ad388]
movsd xmm1, qword [0x4a08e8]
shr al, 6
add byte [ebp - 6], al
comisd xmm1, xmm0
jbe 0x403c40
movsd xmm0, qword [0x4ad068]
addsd xmm0, xmm3
movsd qword [0x4ad068], xmm0
movsx eax, word [0x4ad310]
movsd xmm0, qword [0x4ad068]
add eax, 0x7762d352
addsd xmm0, qword [0x49f2d8]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jnp 0x403c40
mov eax, dword [0x4ad210]
movsd xmm0, qword [0x4ad388]
subsd xmm0, qword [0x4a0850]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
subsd xmm0, qword [0x4a0ca0]
subsd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [0x4ad210], eax
mov al, byte [ebp - 2]
mov ecx, 0x1422dcdd
and al, 0x3f
mov byte [ebp - 5], al
movsx eax, word [0x4ad110]
sub ecx, eax
mov eax, dword [0x4ad1b4]
dec dword [0x4ad1b4]
add eax, 0x42f8285e
cmp eax, ecx
jle 0x403c75
inc dword [0x4ad148]
mov eax, dword [0x4ad148]
movss xmm0, dword [0x4ad4e8]
xor esi, esi
subss xmm0, dword [0x4ad094]
movss xmm1, dword [0x4a1660]
subss xmm0, dword [0x4a3214]
comiss xmm1, xmm0
jb 0x403cb4
movss xmm0, dword [0x4ad118]
mulss xmm0, dword [0x4a1464]
movss dword [0x4ad118], xmm0
mov edi, dword [ebp - 0xc]
nop word [eax + eax]
mov eax, dword [0x4ad220]
movss xmm1, dword [0x4ad454]
add eax, 0x7fdf3825
movss xmm0, dword [0x4ad454]
addss xmm0, xmm4
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movss dword [0x4ad454], xmm0
comiss xmm2, xmm1
jb 0x403d4c
movsd xmm0, qword [0x4ad2f0]
subsd xmm0, xmm3
movsd qword [0x4ad2f0], xmm0
mov eax, dword [0x4ad458]
movss xmm0, dword [0x4ad530]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm1, xmm0
movsd xmm0, qword [0x4ad2f0]
cvtps2pd xmm1, xmm1
subsd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [0x4ad4b4], eax
movss xmm0, dword [0x4ad530]
subss xmm0, xmm4
movss dword [0x4ad530], xmm0
jmp 0x403d56
mov dword [0x4ad330], 0x4e372b28
test bl, bl
je 0x403f4c
mov cl, byte [ebp + esi - 8]
cmp cl, 0x3d
jbe 0x403f4c
movsx eax, word [0x4ad314]
movss xmm0, dword [0x4ad190]
add eax, 0x46128f92
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm0, xmm1
movss dword [0x4ad190], xmm0
cmp cl, 0x3e
jne 0x403e9d
movsx eax, word [0x4ad320]
mov ecx, 0xed68b0f
movsd xmm1, qword [0x4ad2c0]
movd xmm0, eax
mov eax, dword [0x4ad178]
sub ecx, eax
dec dword [0x4ad178]
dec word [0x4ad320]
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
comisd xmm0, xmm1
jbe 0x403e1e
movsd xmm1, qword [0x4ad040]
movss xmm0, dword [0x4ad0c4]
subsd xmm1, qword [0x49f450]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [0x4ad0c4], xmm0
movsd xmm0, qword [0x4ad040]
addsd xmm0, xmm3
movsd qword [0x4ad040], xmm0
jmp 0x403e51
movss xmm1, dword [0x4ad03c]
subss xmm1, dword [0x4a1e64]
movss xmm0, dword [0x4ad0b8]
addss xmm0, xmm1
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x4ad1f8]
mulsd xmm0, xmm1
movsd qword [0x4ad1f8], xmm0
lea eax, [ebp - 0x10]
mov ecx, edx
push eax
call fcn.004250b0
movss xmm0, dword [0x4ad43c]
movsd xmm3, qword [0x49f180]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x4ad150]
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [0x4ad43c], xmm0
movsd xmm0, qword [0x4ad150]
addsd xmm0, xmm3
movsd qword [0x4ad150], xmm0
jmp 0x403f05
movzx eax, word [0x4ad244]
mov ecx, edx
sub eax, 0x463d79b1
mov word [0x4ad244], ax
lea eax, [ebp - 0x14]
push eax
call fcn.004250b0
movsd xmm0, qword [0x4ad2a8]
movsd xmm3, qword [0x49f180]
addsd xmm0, xmm3
movsd qword [0x4ad2a8], xmm0
movsd xmm1, qword [0x4ad2a8]
movsd xmm0, qword [0x4ad040]
addsd xmm1, xmm0
movss xmm0, dword [0x4ad1e8]
cvtps2pd xmm0, xmm0
addsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [0x4ad1e8], xmm0
movsd xmm0, qword [0x4ad030]
movsx eax, word [0x4ad430]
movsd xmm1, qword [0x4a0178]
subsd xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov word [0x4ad430], ax
movsd xmm0, qword [0x4ad030]
subsd xmm0, xmm3
movsd qword [0x4ad030], xmm0
jmp 0x403fa9
inc dword [0x4ad4b4]
mov ecx, edx
mov eax, dword [0x4ad4b4]
movsd xmm0, qword [0x4ad468]
movd xmm1, eax
movzx eax, byte [ebp + esi - 8]
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
movsd qword [0x4ad468], xmm0
movzx eax, byte [eax + edi]
push eax
call fcn.00449810
inc word [0x4ad038]
mov ax, word [0x4ad038]
mov ecx, dword [0x4ad194]
movsd xmm3, qword [0x49f180]
cwde
imul ecx, eax
mov dword [0x4ad194], ecx
movsd xmm0, qword [0x4ad098]
inc esi
subsd xmm0, qword [0x4a24f0]
movss xmm4, dword [0x49f178]
mov edx, dword [ebp + 0x14]
movsd qword [0x4ad098], xmm0
mov eax, dword [0x4ad30c]
movss xmm0, dword [0x4ad290]
add eax, 0x2a995a15
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm0, xmm1
movss dword [0x4ad290], xmm0
inc dword [0x4ad30c]
cmp esi, 4
jne 0x403cc0
movsd xmm0, qword [0x4ad0f8]
xor esi, esi
mulsd xmm0, qword [0x4a0e38]
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
movsd qword [0x4ad0f8], xmm0
movss xmm0, dword [0x4ad374]
addss xmm0, xmm4
movss dword [0x4ad374], xmm0
movss xmm0, dword [0x4ad374]
addss xmm0, dword [0x4ad274]
movss dword [0x4ad274], xmm0
movss xmm0, dword [0x4ad4e8]
subss xmm0, dword [0x4a31b4]
movss dword [0x4ad4e8], xmm0
test edi, edi
jne 0x4039a2
movsd xmm0, qword [0x4ad300]
subsd xmm0, xmm3
movsd qword [0x4ad300], xmm0
movsd xmm1, qword [0x4ad300]
movss xmm0, dword [0x4ad138]
cvtps2pd xmm0, xmm0
subsd xmm1, xmm0
movsd xmm0, qword [0x4ad2c0]
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [0x4ad018], eax
movss xmm0, dword [0x4ad138]
subss xmm0, xmm4
movss dword [0x4ad138], xmm0
test esi, esi
je 0x40497e
movsd xmm0, qword [0x4ad490]
mov ebx, 3
mulsd xmm0, qword [0x4a0f28]
movsd qword [0x4ad490], xmm0
mov ax, word [0x4ad4b0]
cwde
sub dword [0x4ad52c], eax
dec word [0x4ad4b0]
cmp esi, ebx
jge 0x40425b
sub ebx, esi
movsd xmm6, qword [0x4a07b0]
mov ecx, ebx
movss xmm7, dword [0x4a15f4]
mov edx, ecx
movsd xmm5, qword [0x4a2448]
shr ecx, 2
lea edi, [ebp - 4]
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]
nop word [eax + eax]
movsd xmm2, qword [0x4ad2e0]
movss xmm0, dword [0x4ad294]
subsd xmm2, xmm6
cvtps2pd xmm0, xmm0
subsd xmm2, xmm0
movss xmm0, dword [0x4ad190]
addss xmm0, xmm7
subss xmm0, dword [0x4a1934]
cvtps2pd xmm1, xmm0
movss xmm0, dword [0x4ad294]
comisd xmm1, xmm2
subss xmm0, xmm4
movss dword [0x4ad294], xmm0
movsd xmm0, qword [0x4ad2e0]
addsd xmm0, xmm3
movsd qword [0x4ad2e0], xmm0
jbe 0x4041fc
movsd xmm2, qword [0x4ad040]
movsd xmm0, qword [0x4ad490]
movsd xmm1, qword [0x4ad428]
subsd xmm2, xmm0
movsd xmm0, qword [0x4ad520]
addsd xmm1, xmm2
addsd xmm0, xmm1
movsd qword [0x4ad520], xmm0
movsd xmm0, qword [0x4ad428]
subsd xmm0, xmm3
movsd qword [0x4ad428], xmm0
movsd xmm0, qword [0x4ad490]
subsd xmm0, xmm3
movsd qword [0x4ad490], xmm0
movsd xmm0, qword [0x4ad498]
movaps xmm1, xmm5
movsx eax, word [0x4ad474]
subsd xmm1, xmm0
inc word [0x4ad474]
sub eax, 0xf2625e6
movd xmm0, eax
cvtdq2pd xmm0, xmm0
comisd xmm1, xmm0
jbe 0x40423e
movzx eax, word [0x4ad418]
add eax, 0x3118707d
mov word [0x4ad418], ax
imul eax, dword [0x4ad350], 0xad9204b1
mov dword [0x4ad350], eax
sub ebx, 1
jne 0x404140
mov ebx, 3
movss xmm0, dword [0x4ad048]
mov ecx, 0x6c274f85
subss xmm0, xmm4
movss dword [0x4ad048], xmm0
movss xmm0, dword [0x4ad290]
subss xmm0, dword [0x4ad048]
mov al, byte [ebp - 4]
shr al, 2
mov byte [ebp - 8], al
movss dword [0x4ad290], xmm0
movsx eax, word [0x4ad1ec]
sub ecx, eax
cmp ecx, 0x721de12b
jle 0x4042dd
mov eax, dword [0x4ad52c]
movss xmm1, dword [0x4ad0f4]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movsd xmm0, qword [0x4ad168]
subss xmm1, dword [0x4a1888]
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm1
movsd qword [0x4ad168], xmm0
mov al, byte [ebp - 4]
and al, 3
shl al, 4
mov byte [ebp - 7], al
mov eax, dword [0x4ad11c]
movss xmm1, dword [0x4ad3d0]
add eax, 0x61ec9fd2
movss xmm0, dword [0x4ad3d0]
addss xmm1, dword [0x4a19bc]
addss xmm0, xmm4
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movss dword [0x4ad3d0], xmm0
comiss xmm2, xmm1
jbe 0x404360
movsd xmm0, qword [0x4ad2f8]
subsd xmm0, xmm3
movsd qword [0x4ad2f8], xmm0
movsd xmm1, qword [0x4ad2f8]
mov eax, dword [0x4ad458]
subsd xmm1, qword [0x4a0280]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [0x4ad458], eax
mov al, byte [ebp - 3]
mov ecx, 0x459e5e7e
shr al, 4
xor edi, edi
add byte [ebp - 7], al
movzx eax, word [0x4ad244]
imul eax, eax, 0xe656c54b
mov word [0x4ad244], ax
mov al, byte [ebp - 3]
and al, 0xf
shl al, 2
mov byte [ebp - 6], al
movsx eax, word [0x4ad474]
sub ecx, eax
mov al, byte [ebp - 2]
shr al, 6
add byte [ebp - 6], al
mov dword [0x4ad270], ecx
mov eax, dword [0x4ad1c8]
mov dword [0x4ad3b4], eax
movss xmm0, dword [0x4ad374]
mov al, byte [ebp - 2]
mulss xmm0, dword [0x4a1edc]
and al, 0x3f
mov byte [ebp - 5], al
movss dword [0x4ad374], xmm0
imul eax, dword [0x4ad178], 0x4df94867
mov dword [0x4ad178], eax
mov dword [0x4ad0bc], 0x62ada10d
test esi, esi
js 0x40477b
mov bl, byte [ebp + 0x10]
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [0x4ad11c]
add eax, 0x1e391abf
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [0x4ad398], xmm0
test bl, bl
je 0x404635
mov cl, byte [ebp + edi - 8]
cmp cl, 0x3d
jbe 0x404635
movsx eax, word [0x4ad04c]
sub eax, 0x35dc093
cmp cl, 0x3e
mov ecx, dword [ebp + 0x14]
mov dword [0x4ad2b8], eax
jne 0x404482
imul eax, dword [0x4ad270], 0xc6e05272
mov dword [0x4ad270], eax
lea eax, [ebp - 0x10]
push eax
call fcn.004250b0
inc word [0x4ad418]
mov ax, word [0x4ad418]
mov ecx, dword [0x4ad52c]
cwde
imul ecx, eax
mov dword [0x4ad52c], ecx
jmp 0x4045c8
dec dword [0x4ad4c8]
mov eax, dword [0x4ad4dc]
movd xmm2, eax
mov eax, dword [0x4ad4c8]
movss xmm0, dword [0x4ad454]
sub eax, 0x1226c2c5
cvtdq2ps xmm2, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm1, xmm0
subss xmm2, xmm1
cvttss2si eax, xmm2
mov dword [0x4ad4dc], eax
lea eax, [ebp - 0x14]
push eax
call fcn.004250b0
movss xmm0, dword [0x4ad00c]
movss xmm2, dword [0x49f178]
addss xmm0, xmm2
movss dword [0x4ad00c], xmm0
movsd xmm1, qword [0x4ad298]
movss xmm0, dword [0x4ad00c]
mov ax, word [0x4ad100]
addsd xmm1, qword [0x4a0658]
cvtps2pd xmm0, xmm0
movsx ecx, ax
movsx eax, word [0x4ad314]
inc word [0x4ad314]
sub ecx, eax
sub ecx, 0x3fab64af
subsd xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
comisd xmm1, xmm0
jb 0x40453e
mov dword [0x4ad414], 0x78aa7ccb
jmp 0x4045c8
movss xmm0, dword [0x4ad48c]
movss xmm1, dword [0x4a30e4]
subss xmm1, xmm0
comiss xmm1, dword [0x4a3178]
jbe 0x404580
movsx eax, word [0x4ad334]
movsd xmm0, qword [0x4ad500]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
movsd qword [0x4ad500], xmm0
jmp 0x4045c8
mov eax, dword [0x4ad130]
movss xmm1, dword [0x4ad2d0]
movd xmm0, eax
movsx eax, word [0x4ad02c]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
cvttss2si eax, xmm0
mov word [0x4ad02c], ax
movss xmm0, dword [0x4ad2d0]
subss xmm0, xmm2
movss dword [0x4ad2d0], xmm0
movsd xmm1, qword [0x4ad280]
movsx eax, word [0x4ad3a0]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
movsd xmm0, qword [0x4ad520]
subsd xmm0, qword [0x4a05d0]
subsd xmm0, qword [0x4a2078]
comisd xmm0, xmm1
jbe 0x404695
mov eax, dword [0x4ad194]
mov ecx, 0x4ae3c0f2
movsd xmm0, qword [0x4ad518]
sub ecx, eax
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
addsd xmm0, xmm1
movsd qword [0x4ad518], xmm0
dec dword [0x4ad194]
jmp 0x404695
movsd xmm1, qword [0x4ad378]
mov eax, dword [0x4ad528]
addsd xmm1, qword [0x49ff60]
mov ecx, dword [ebp - 0xc]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [0x4ad528], eax
movzx eax, byte [ebp + edi - 8]
movzx eax, byte [eax + ecx]
mov ecx, dword [ebp + 0x14]
push eax
call fcn.00449810
movsd xmm0, qword [0x4ad170]
subsd xmm0, qword [0x4a0800]
subsd xmm0, qword [0x4a2588]
cvttsd2si eax, xmm0
mov dword [0x4ad308], eax
movss xmm0, dword [0x4ad138]
inc edi
movss xmm4, dword [0x49f178]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x4ad068]
mulsd xmm0, xmm1
movsd xmm1, qword [0x49f190]
movsd xmm3, qword [0x49f180]
movsd qword [0x4ad068], xmm0
movss xmm0, dword [0x4ad138]
subss xmm0, xmm4
movss dword [0x4ad138], xmm0
inc dword [0x4ad2bc]
movsd xmm0, qword [0x4ad160]
mov eax, dword [0x4ad2bc]
subsd xmm1, xmm0
movd xmm2, eax
movsx eax, word [0x4ad4fc]
add eax, 0x74b1f38b
cvtdq2pd xmm2, xmm2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm2, xmm1
ucomisd xmm2, xmm0
lahf
inc word [0x4ad4fc]
movsd xmm0, qword [0x4ad160]
addsd xmm0, xmm3
movsd qword [0x4ad160], xmm0
test ah, 0x44
jp 0x404764
movss xmm0, dword [0x4ad27c]
subss xmm0, dword [0x4a1338]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x4ad040]
mulsd xmm0, xmm1
movsd qword [0x4ad040], xmm0
mov dword [0x4ad0bc], 0x62ada10d
cmp edi, esi
jle 0x404400
mov ebx, 3
mov eax, dword [0x4ad424]
add eax, 0x21bce784
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [0x4ad3a4], xmm0
cmp esi, 3
jge 0x404948
sub ebx, esi
nop
inc word [0x4ad470]
inc word [0x4ad104]
mov ax, word [0x4ad470]
movsx ecx, ax
mov eax, dword [0x4ad308]
sub ecx, eax
movsx eax, word [0x4ad104]
add ecx, 0x87699007
add eax, 0x70f7f45d
cmp ecx, eax
jle 0x4047de
mov dword [0x4ad440], 0xd547b35e
cmp byte [ebp + 0x10], 0
movss xmm0, dword [0x4ad44c]
addss xmm0, xmm4
movss dword [0x4ad44c], xmm0
movss xmm0, dword [0x4ad44c]
addss xmm0, dword [0x4ad43c]
movss dword [0x4ad43c], xmm0
je 0x40486b
mov eax, dword [0x4ad45c]
mov ecx, dword [0x4ad508]
add eax, 0xb93d29a8
imul ecx, eax
lea eax, [ebp - 0x18]
push eax
mov dword [0x4ad508], ecx
mov ecx, dword [ebp + 0x14]
call fcn.004250b0
movss xmm0, dword [0x4ad330]
mulss xmm0, dword [0x4ad330]
movss xmm4, dword [0x49f178]
movss dword [0x4ad330], xmm0
movss xmm0, dword [0x4ad330]
addss xmm0, xmm4
movss dword [0x4ad330], xmm0
jmp 0x4048de
movsd xmm1, qword [0x4ad280]
movsd xmm0, qword [0x4ad3f8]
addsd xmm0, qword [0x4a0468]
mov ecx, dword [ebp + 0x14]
push 0x3d
subsd xmm1, xmm0
movsd qword [0x4ad280], xmm1
movsd xmm0, qword [0x4ad3f8]
addsd xmm0, xmm3
movsd qword [0x4ad3f8], xmm0
call fcn.00449810
movss xmm1, dword [0x4ad27c]
mov ecx, 0x73927b
movsx eax, word [0x4ad320]
movss xmm4, dword [0x49f178]
sub ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
movss dword [0x4ad27c], xmm1
mov eax, dword [0x4ad194]
movsd xmm1, qword [0x4ad3f8]
movsd xmm3, qword [0x49f180]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm0
movss xmm0, dword [0x4ad190]
movsx eax, word [0x4ad334]
cvtps2pd xmm0, xmm0
subsd xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm1
cvttsd2si eax, xmm0
mov word [0x4ad334], ax
movsd xmm0, qword [0x4ad3f8]
addsd xmm0, xmm3
movsd qword [0x4ad3f8], xmm0
sub ebx, 1
jne 0x4047a0
mov ax, word [0x4ad340]
movsx ecx, ax
mov eax, dword [0x4ad528]
movss xmm0, dword [0x4ad120]
add eax, 0x5a196350
add eax, ecx
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm1
movss dword [0x4ad120], xmm0
dec dword [0x4ad528]
push dword [ebp - 0xc]
mov dword [0x4ad330], 0xcee7b4b9
push 0x41
call fcn.00411590
movzx eax, word [0x4ad110]
add esp, 8
movsx ecx, ax
movzx eax, word [0x4ad038]
add eax, 0xf007cd0b
mov dword [ebp - 0x10], 0
add eax, ecx
mov ecx, 0x59f0cbb4
mov word [0x4ad038], ax
movsd xmm0, qword [0x4ad378]
addsd xmm0, qword [0x4a04e0]
mov dword [ebp - 0x14], 0
pop edi
pop esi
pop ebx
movsd qword [0x4ad378], xmm0
dec word [0x4ad444]
movsx eax, word [0x4ad444]
sub ecx, eax
mov eax, dword [0x4ad188]
movsd xmm0, qword [0x4ad2f8]
add eax, ecx
mov dword [ebp - 0x18], 0
movd xmm1, eax
cvtdq2pd xmm1, xmm1
addsd xmm0, xmm1
movsd qword [0x4ad2f8], xmm0
movsx eax, word [0x4ad1ec]
movss xmm0, dword [0x4ad13c]
add eax, 0x32f8be31
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [0x4ad2a8], xmm0
movss xmm0, dword [0x4ad13c]
addss xmm0, dword [0x49f178]
movss dword [0x4ad13c], xmm0
mov esp, ebp
pop ebp
ret