Function at 0x10015ac0
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10031e52
mov eax, dword fs:[0]
push eax
sub esp, 0x25c
mov eax, dword [0x1003a008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x264], edx
mov dword [ebp - 0x268], ecx
xor eax, eax
mov dword [ebp - 0x1f0], 0
push eax
push 0x10037c8c
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 0x1e0], 0
mov dword [ebp - 0x1dc], 7
mov word [ebp - 0x1f0], ax
call fcn.1000a3a0
xor eax, eax
mov dword [ebp - 4], 0
push eax
mov dword [ebp - 0x208], 0
lea ecx, [ebp - 0x208]
push 0x10037c8c
mov dword [ebp - 0x1f8], 0
mov dword [ebp - 0x1f4], 7
mov word [ebp - 0x208], ax
call fcn.1000a3a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x220]
push 0
mov dword [ebp - 0x220], 0
push 0x10037c06
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x20c], 0xf
mov byte [ebp - 0x220], 0
call fcn.1000a580
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x238]
push 0
mov dword [ebp - 0x238], 0
push 0x10037c06
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 0xf
mov byte [ebp - 0x238], 0
call fcn.1000a580
push 0x100
lea eax, [ebp - 0x1b0]
mov byte [ebp - 4], 3
push 0
push eax
call fcn.1001fb10
movsd xmm0, qword [0x10037db8]
add esp, 0xc
movsd qword [0x1003a920], xmm0
xor ecx, ecx
movsd xmm0, qword [0x10037dd8]
movsd qword [0x1003a910], xmm0
movsd xmm0, qword [0x10037dc0]
movsd qword [0x1003a928], xmm0
movsd xmm0, qword [0x10037db0]
movsd qword [0x1003a918], xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x1b8], 0xf1fce6f6
movups xmmword [ebp - 0x60], xmm0
mov word [ebp - 0x1b4], 0xa9
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x1b8], al
inc ecx
cmp ecx, 5
jb 0x10015c60
xor eax, eax
mov byte [ebp - 0x1b3], 0
mov dword [ebp - 0x260], eax
cmp byte [ebp - 0x70], al
je 0x10015c92
inc eax
cmp byte [ebp + eax - 0x70], 0
jne 0x10015c84
mov dword [ebp - 0x260], eax
xorps xmm0, xmm0
mov dword [ebp - 0x258], 0
lea edi, [ebp - 0x1b8]
mov dword [ebp - 0x1cc], 0xb1beb3b0
movups xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0x1c8], 0xb9bbbdb7
xor ecx, ecx
movups xmmword [ebp - 0x20], xmm0
mov byte [ebp - 0x1c4], 0
nop word [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x1cc], al
inc ecx
cmp ecx, 8
jb 0x10015cd0
mov al, byte [ebp - 0x1cc]
mov byte [ebp - 0x1c4], 0
mov byte [ebp - 0x30], al
test al, al
je 0x10015d12
xor ecx, ecx
nop word [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x1cc]
mov byte [ebp + ecx - 0x30], al
test al, al
jne 0x10015d00
movsx ecx, byte [ebp - 0x1b8]
mov esi, 3
mov al, cl
mov dword [ebp - 0x25c], ecx
add al, al
add cl, al
add cl, byte [ebp - 0x30]
inc cl
mov byte [ebp - 0x30], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x30]
cdq
idiv ecx
movzx eax, byte [ebp - 0x2f]
or edx, dword [ebp - 0x25c]
add al, dl
mov byte [ebp - 0x2f], al
movzx eax, byte [ebp - 0x2f]
mov cl, byte [ebp - 0x30]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x2d]
mov byte [ebp - 0x2d], cl
movsx ecx, byte [ebp - 0x2d]
movzx eax, byte [ebp - 0x2c]
sar ecx, 6
add al, cl
mov byte [ebp - 0x2c], al
xor eax, eax
movsx edx, byte [ebp + esi - 0x30]
movsx ecx, byte [ebp + esi - 0x31]
add edx, edx
add ecx, edx
inc esi
lea eax, [eax + ecx*2]
cmp esi, 0x11
jl 0x10015d72
mov ecx, dword [ebp - 0x258]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x10015def
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x258], eax
cmp dword [ebp - 0x258], 0xe
jle 0x10015dbc
mov dword [ebp - 0x258], 1
mov al, byte [ebp - 0x1b8]
lea edx, [ebp - 0x70]
add edx, dword [ebp - 0x260]
lea ecx, [ebp - 0x1b8]
mov byte [edx], al
test al, al
je 0x10015e1d
mov eax, ecx
sub edx, eax
nop dword [eax + eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edx + ecx], al
test al, al
jne 0x10015de0
jmp 0x10015e1d
mov al, byte [ebp - 0x1b8]
lea ecx, [ebp - 0x70]
add ecx, dword [ebp - 0x260]
mov byte [ecx], al
test al, al
je 0x10015e1d
lea eax, [ebp - 0x1b8]
sub ecx, eax
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [ecx + edi], al
test al, al
jne 0x10015e10
mov dword [ebp - 0x1c0], 0xece5eff2
xor ecx, ecx
mov word [ebp - 0x1bc], 0xe8
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x1c0], al
inc ecx
cmp ecx, 5
jb 0x10015e32
xor eax, eax
mov byte [ebp - 0x1bb], 0
mov dword [ebp - 0x260], eax
cmp byte [ebp - 0x70], al
je 0x10015e64
inc eax
cmp byte [ebp + eax - 0x70], 0
jne 0x10015e56
mov dword [ebp - 0x260], eax
xorps xmm0, xmm0
mov dword [ebp - 0x258], 0
lea edi, [ebp - 0x1c0]
mov dword [ebp - 0x1d8], 0xb1beb3b0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x1d4], 0xb9bbbdb7
xor ecx, ecx
movups xmmword [ebp - 0x40], xmm0
mov byte [ebp - 0x1d0], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x1d8], al
inc ecx
cmp ecx, 8
jb 0x10015ea0
mov al, byte [ebp - 0x1d8]
mov byte [ebp - 0x1d0], 0
mov byte [ebp - 0x50], al
test al, al
je 0x10015ee2
xor ecx, ecx
nop word [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x1d8]
mov byte [ebp + ecx - 0x50], al
test al, al
jne 0x10015ed0
movsx ecx, byte [ebp - 0x1c0]
mov esi, 3
mov al, cl
mov dword [ebp - 0x25c], ecx
add al, al
add cl, al
add cl, byte [ebp - 0x50]
inc cl
mov byte [ebp - 0x50], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x50]
cdq
idiv ecx
movzx eax, byte [ebp - 0x4f]
or edx, dword [ebp - 0x25c]
add al, dl
mov byte [ebp - 0x4f], al
movzx eax, byte [ebp - 0x4f]
mov cl, byte [ebp - 0x50]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x4d]
mov byte [ebp - 0x4d], cl
movsx ecx, byte [ebp - 0x4d]
movzx eax, byte [ebp - 0x4c]
sar ecx, 6
add al, cl
mov byte [ebp - 0x4c], al
xor eax, eax
movsx edx, byte [ebp + esi - 0x50]
movsx ecx, byte [ebp + esi - 0x51]
add edx, edx
add ecx, edx
inc esi
lea eax, [eax + ecx*2]
cmp esi, 0x11
jl 0x10015f42
mov ecx, dword [ebp - 0x258]
cdq
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x10015fbf
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x258], eax
cmp dword [ebp - 0x258], 0xe
jle 0x10015f8c
mov dword [ebp - 0x258], 1
mov al, byte [ebp - 0x1c0]
lea edx, [ebp - 0x70]
add edx, dword [ebp - 0x260]
lea ecx, [ebp - 0x1c0]
mov byte [edx], al
test al, al
je 0x10015fed
mov eax, ecx
sub edx, eax
nop dword [eax + eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edx + ecx], al
test al, al
jne 0x10015fb0
jmp 0x10015fed
mov al, byte [ebp - 0x1c0]
lea ecx, [ebp - 0x70]
add ecx, dword [ebp - 0x260]
mov byte [ecx], al
test al, al
je 0x10015fed
lea eax, [ebp - 0x1c0]
sub ecx, eax
nop dword [eax]
mov al, byte [edi + 1]
lea edi, [edi + 1]
mov byte [ecx + edi], al
test al, al
jne 0x10015fe0
push 0x40
lea eax, [ebp - 0xb0]
push 0
push eax
call fcn.1001fb10
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0xb0]
push 0x10037bd4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
mov dword [ebp - 0x250], 0
xor eax, eax
mov dword [ebp - 0x240], 0
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x23c], 7
mov word [ebp - 0x250], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10016046
sub ecx, edx
lea eax, [ebp - 0xb0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x250]
call fcn.1000a3a0
mov byte [ebp - 4], 4
movsd xmm3, qword [0x1003a928]
movsd xmm1, qword [0x1003a918]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a910]
movaps xmm2, xmm1
mov esi, dword [ebp - 0x268]
mulsd xmm2, xmm3
push ecx
addsd xmm4, qword [0x1003a920]
mov edx, dword [esi + 4]
addsd xmm2, qword [0x1003a910]
mov ecx, dword [esi]
movaps xmm0, xmm4
movsd qword [0x1003a920], xmm4
mulsd xmm0, xmm1
movsd qword [0x1003a910], xmm2
mulsd xmm2, xmm4
addsd xmm0, xmm3
addsd xmm2, xmm1
movsd qword [0x1003a928], xmm0
movsd qword [0x1003a918], xmm2
call fcn.1001bad0
mov eax, dword [esi]
lea ecx, [ebp - 0x1f0]
add esp, 4
mov dword [esi + 4], eax
call fcn.100012e0
movsd xmm6, qword [0x10037da8]
test eax, eax
je 0x10016109
or edi, 0xffffffff
jmp 0x10016bb4
movsd xmm3, qword [0x1003a918]
lea ecx, [ebp - 0x1f0]
movsd xmm5, qword [0x1003a928]
movaps xmm1, xmm3
addsd xmm1, xmm6
movsd xmm4, qword [0x1003a910]
movaps xmm0, xmm5
movsd xmm2, qword [0x1003a920]
push 0x10037d5c
divsd xmm0, xmm1
movaps xmm1, xmm3
subsd xmm4, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a910], xmm4
divsd xmm1, xmm0
movaps xmm0, xmm4
subsd xmm5, xmm1
movaps xmm1, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a928], xmm5
addsd xmm5, xmm6
divsd xmm1, xmm0
divsd xmm4, xmm5
subsd xmm3, xmm1
subsd xmm2, xmm4
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a920], xmm2
call fcn.1000a150
mov eax, dword [ebp - 0x264]
cmp dword [eax + 0x14], 8
jb 0x100161a9
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x1f0]
call fcn.1000a150
cmp dword [ebp - 0x1dc], 8
lea ecx, [ebp - 0x1f0]
cmovae ecx, dword [ebp - 0x1f0]
call fcn.1000aaf0
mov edi, eax
mov esi, edi
mov dword [ebp - 0x258], edi
lea eax, [esi + 1]
nop dword [eax + eax]
mov cl, byte [esi]
inc esi
test cl, cl
jne 0x100161e0
movsd xmm5, qword [0x1003a918]
mov ecx, 0x1003ad40
movsd xmm1, qword [0x1003a920]
movaps xmm6, xmm5
mulsd xmm6, qword [0x1003a928]
sub esi, eax
mov dword [ebp - 0x25c], esi
movsd xmm0, qword [0x1003a910]
lea edx, [ecx + 1]
mulsd xmm5, xmm1
movaps xmm2, xmm0
subsd xmm6, xmm1
mulsd xmm2, xmm1
subsd xmm5, xmm0
movaps xmm1, xmm6
subsd xmm2, xmm6
mulsd xmm1, xmm0
subsd xmm1, xmm5
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10016240
sub ecx, edx
push ecx
lea ecx, [ebp - 0x1b0]
call fcn.10012150
movaps xmm4, xmm1
lea ecx, [ebp - 0x1b0]
mulsd xmm4, xmm6
mov edx, edi
push esi
addsd xmm4, xmm2
movaps xmm2, xmm5
mulsd xmm2, xmm6
movaps xmm3, xmm4
mulsd xmm3, xmm5
addsd xmm2, xmm1
addsd xmm3, xmm6
call fcn.10012200
movsd xmm6, qword [0x10037da8]
lea eax, [esi + esi]
movaps xmm1, xmm2
movaps xmm0, xmm4
mulsd xmm1, xmm4
addsd xmm0, xmm6
push eax
push 1
addsd xmm1, xmm5
divsd xmm1, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm6
addsd xmm1, xmm2
divsd xmm4, xmm0
movaps xmm0, xmm3
movsd qword [0x1003a918], xmm1
addsd xmm0, xmm6
addsd xmm4, xmm3
divsd xmm2, xmm0
movsd qword [0x1003a920], xmm4
addsd xmm2, xmm1
addsd xmm1, xmm6
movsd qword [0x1003a910], xmm2
divsd xmm3, xmm1
addsd xmm3, xmm4
movsd qword [0x1003a928], xmm3
call fcn.100215c0
mov edi, eax
add esp, 0x10
mov dword [ebp - 0x1b8], edi
test edi, edi
jne 0x1001631a
mov esi, dword [ebp - 0x258]
mov edi, 0xfffffffe
jmp 0x10016b9f
movsd xmm3, qword [0x1003a918]
xor eax, eax
movsd xmm2, qword [0x10037da8]
movaps xmm1, xmm3
movsd xmm6, qword [0x1003a928]
addsd xmm1, xmm2
movaps xmm0, xmm6
movsd xmm4, qword [0x1003a910]
movsd xmm5, qword [0x1003a920]
xor edx, edx
xor ch, ch
mov dword [ebp - 0x264], eax
xor esi, esi
divsd xmm0, xmm1
movaps xmm1, xmm3
subsd xmm4, xmm0
movaps xmm0, xmm5
addsd xmm0, xmm2
divsd xmm1, xmm0
movaps xmm0, xmm4
addsd xmm0, xmm2
subsd xmm6, xmm1
movaps xmm1, xmm5
divsd xmm1, xmm0
movaps xmm0, xmm6
addsd xmm0, xmm2
subsd xmm3, xmm1
movaps xmm1, xmm4
divsd xmm1, xmm0
subsd xmm5, xmm1
cmp dword [ebp - 0x25c], eax
jbe 0x100164ab
mov edi, dword [ebp - 0x258]
mov cl, byte [eax + edi]
mov eax, edx
mov edi, dword [ebp - 0x1b8]
mov byte [ebp - 0x251], cl
sub eax, 0
je 0x1001642b
sub eax, 1
je 0x10016402
sub eax, 1
jne 0x10016440
movzx edx, cl
movzx ecx, ch
mov eax, edx
and ecx, 0xf
shr eax, 6
shl ecx, 2
and edx, 0x3f
or ecx, eax
movzx eax, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov cl, byte [ebp - 0x251]
mov byte [esi + edi], al
movzx eax, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi + edi + 1], al
add esi, 2
xor edx, edx
jmp 0x10016440
movzx eax, byte [ebp - 0x251]
mov edx, 2
movzx ecx, ch
and ecx, 3
shr eax, 4
shl ecx, 4
or ecx, eax
movzx eax, byte [ecx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov cl, byte [ebp - 0x251]
jmp 0x1001643c
movzx eax, cl
mov edx, 1
shr eax, 2
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [esi + edi], al
inc esi
mov eax, dword [ebp - 0x264]
mov ch, cl
inc eax
mov dword [ebp - 0x260], esi
mov dword [ebp - 0x264], eax
cmp eax, dword [ebp - 0x25c]
jb 0x100163a4
sub edx, 1
je 0x10016487
sub edx, 1
jne 0x100164ab
movzx eax, ch
mov ecx, esi
and eax, 0xf
lea esi, [ecx + 1]
mov al, byte [eax*4 + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx + edi], al
mov byte [esi + edi], 0x3d
inc esi
jmp 0x100164ab
movzx eax, ch
mov ecx, dword [ebp - 0x260]
and eax, 3
shl eax, 4
lea esi, [ecx + 1]
mov al, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov byte [ecx + edi], al
mov word [esi + edi], 0x3d3d
add esi, 2
push dword [ebp - 0x258]
movaps xmm1, xmm3
mov byte [esi + edi], 0
mulsd xmm1, xmm6
movaps xmm0, xmm4
mulsd xmm0, xmm5
mulsd xmm3, xmm5
subsd xmm1, xmm5
subsd xmm3, xmm4
subsd xmm0, xmm1
movsd qword [0x1003a928], xmm1
mulsd xmm1, xmm4
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a920], xmm0
subsd xmm1, xmm3
movsd qword [0x1003a910], xmm1
call fcn.1001e327
mov ecx, edi
add esp, 4
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10016508
mov eax, dword [ebp - 0x20c]
sub ecx, edx
mov edx, dword [ebp - 0x210]
sub eax, edx
push ecx
cmp ecx, eax
ja 0x1001655f
cmp dword [ebp - 0x20c], 0x10
lea esi, [ebp - 0x220]
push dword [ebp - 0x1b8]
cmovae esi, dword [ebp - 0x220]
lea edi, [ecx + edx]
mov dword [ebp - 0x210], edi
lea eax, [edx + esi]
push eax
call fcn.10021000
mov byte [esi + edi], 0
add esp, 0xc
mov edi, dword [ebp - 0x1b8]
jmp 0x10016579
push edi
mov byte [ebp - 0x25c], 0
push dword [ebp - 0x25c]
push ecx
lea ecx, [ebp - 0x220]
call fcn.1000a850
push edi
call fcn.10023a85
movsd xmm3, qword [0x1003a928]
lea edx, [ebp - 0x220]
movsd xmm1, qword [0x1003a918]
lea ecx, [ebp - 0x238]
movaps xmm4, xmm3
movaps xmm2, xmm1
mulsd xmm4, qword [0x1003a910]
add esp, 4
mulsd xmm2, xmm3
addsd xmm4, qword [0x1003a920]
addsd xmm2, qword [0x1003a910]
movaps xmm0, xmm4
movsd qword [0x1003a920], xmm4
mulsd xmm0, xmm1
movsd qword [0x1003a910], xmm2
mulsd xmm2, xmm4
addsd xmm0, xmm3
addsd xmm2, xmm1
movsd qword [0x1003a928], xmm0
movsd qword [0x1003a918], xmm2
call fcn.1000c6b0
movsd xmm3, qword [0x1003a918]
lea eax, [ebp - 0x220]
movsd xmm6, qword [0x10037da8]
lea ecx, [ebp - 0x238]
movsd xmm5, qword [0x1003a928]
movaps xmm1, xmm3
addsd xmm1, xmm6
movsd xmm4, qword [0x1003a910]
movaps xmm0, xmm5
movsd xmm2, qword [0x1003a920]
cmp dword [ebp - 0x20c], 0x10
mov dword [ebp - 0x210], 0
cmovae eax, dword [ebp - 0x220]
divsd xmm0, xmm1
mov byte [eax], 0
cmp dword [ebp - 0x224], 0x10
cmovae ecx, dword [ebp - 0x238]
movaps xmm1, xmm3
subsd xmm4, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a910], xmm4
divsd xmm1, xmm0
movaps xmm0, xmm4
subsd xmm5, xmm1
movaps xmm1, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a928], xmm5
addsd xmm5, xmm6
divsd xmm1, xmm0
divsd xmm4, xmm5
subsd xmm3, xmm1
subsd xmm2, xmm4
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a920], xmm2
call fcn.1000b700
movsd xmm4, qword [0x1003a920]
lea ecx, [ebp - 0x238]
movsd xmm5, qword [0x10037da8]
movaps xmm0, xmm4
movsd xmm3, qword [0x1003a918]
addsd xmm0, xmm5
cmp dword [ebp - 0x224], 0x10
mov esi, eax
movsd xmm2, qword [0x1003a910]
lea eax, [ebp - 0x1f0]
cmovae ecx, dword [ebp - 0x238]
mov dword [ebp - 0x228], 0
divsd xmm3, xmm0
mov byte [ecx], 0
cmp dword [ebp - 0x1dc], 8
mov dword [ebp - 0x1e0], 0
cmovae eax, dword [ebp - 0x1f0]
xor ecx, ecx
mov word [eax], cx
movaps xmm0, xmm2
addsd xmm3, xmm2
movsd qword [0x1003a918], xmm3
movsd xmm1, qword [0x1003a928]
addsd xmm0, xmm5
push esi
lea ecx, [ebp - 0x1f0]
divsd xmm4, xmm0
movaps xmm0, xmm1
addsd xmm0, xmm5
addsd xmm4, xmm1
divsd xmm2, xmm0
movsd qword [0x1003a920], xmm4
addsd xmm2, xmm3
addsd xmm3, xmm5
movsd qword [0x1003a910], xmm2
divsd xmm1, xmm3
addsd xmm1, xmm4
movsd qword [0x1003a928], xmm1
call fcn.1000a150
push esi
call fcn.1001e327
movsd xmm3, qword [0x1003a918]
add esp, 4
movsd xmm6, qword [0x10037da8]
movaps xmm1, xmm3
movsd xmm5, qword [0x1003a928]
addsd xmm1, xmm6
movaps xmm0, xmm5
movsd xmm4, qword [0x1003a910]
movsd xmm2, qword [0x1003a920]
mov ecx, 0x1003ab38
divsd xmm0, xmm1
movaps xmm1, xmm3
subsd xmm4, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a910], xmm4
divsd xmm1, xmm0
movaps xmm0, xmm4
subsd xmm5, xmm1
movaps xmm1, xmm2
addsd xmm0, xmm6
movsd qword [0x1003a928], xmm5
addsd xmm5, xmm6
divsd xmm1, xmm0
divsd xmm4, xmm5
subsd xmm3, xmm1
subsd xmm2, xmm4
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a920], xmm2
call fcn.1000aaf0
mov esi, eax
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10016833
sub ecx, edx
lea eax, [ecx + 0x10]
push eax
push 1
call fcn.100215c0
movsd xmm1, qword [0x1003a928]
mov edi, eax
movsd xmm2, qword [0x1003a918]
movaps xmm3, xmm1
mulsd xmm3, qword [0x1003a910]
movaps xmm4, xmm2
add esp, 8
mulsd xmm4, xmm1
addsd xmm3, qword [0x1003a920]
addsd xmm4, qword [0x1003a910]
movsd qword [0x1003a920], xmm3
movaps xmm5, xmm3
mulsd xmm5, xmm2
movsd qword [0x1003a910], xmm4
movaps xmm6, xmm4
mulsd xmm6, xmm3
addsd xmm5, xmm1
movaps xmm1, xmm4
mulsd xmm1, xmm3
movsd qword [0x1003a928], xmm5
addsd xmm1, xmm2
movsd qword [0x1003a918], xmm1
test edi, edi
jne 0x100168c9
mov edi, 0xfffffffd
jmp 0x10016b9f
movaps xmm0, xmm1
mov edx, esi
mulsd xmm0, xmm5
lea ecx, [edx + 1]
subsd xmm0, xmm3
mulsd xmm3, xmm1
subsd xmm3, xmm4
movsd qword [0x1003a928], xmm0
mulsd xmm4, xmm0
subsd xmm6, xmm0
movsd qword [0x1003a918], xmm3
subsd xmm4, xmm3
movsd qword [0x1003a920], xmm6
movsd qword [0x1003a910], xmm4
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x10016910
sub edx, ecx
mov ecx, esi
push edi
call fcn.10001030
push esi
call fcn.1001e327
movsd xmm3, qword [0x1003a928]
mov ecx, edi
movsd xmm1, qword [0x1003a918]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a910]
movaps xmm2, xmm1
mulsd xmm2, xmm3
addsd xmm4, qword [0x1003a920]
addsd xmm2, qword [0x1003a910]
movaps xmm0, xmm4
movsd qword [0x1003a920], xmm4
mulsd xmm0, xmm1
movsd qword [0x1003a910], xmm2
mulsd xmm2, xmm4
addsd xmm0, xmm3
addsd xmm2, xmm1
movsd qword [0x1003a928], xmm0
movsd qword [0x1003a918], xmm2
call fcn.1000b700
mov esi, eax
push edi
mov dword [ebp - 0x264], esi
call fcn.10023a85
add esp, 0xc
lea ecx, [ebp - 0x208]
push esi
call fcn.1000a150
push 0x10037d60
lea ecx, [ebp - 0x208]
call fcn.1000a150
cmp dword [ebp - 0x1dc], 8
lea edx, [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1f8]
cmovae edx, dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x1f4]
mov edi, dword [ebp - 0x1e0]
sub eax, ecx
mov dword [ebp - 0x25c], ecx
cmp edi, eax
ja 0x10016a36
cmp dword [ebp - 0x1f4], 8
lea eax, [ecx + edi]
lea esi, [ebp - 0x208]
mov dword [ebp - 0x1f8], eax
cmovae esi, dword [ebp - 0x208]
lea eax, [edi + edi]
push eax
push edx
lea ecx, [esi + ecx*2]
push ecx
call fcn.10021000
mov eax, dword [ebp - 0x25c]
add esp, 0xc
add eax, edi
xor ecx, ecx
mov word [esi + eax*2], cx
mov esi, dword [ebp - 0x264]
jmp 0x10016a51
push edi
push edx
mov byte [ebp - 0x25c], 0
lea ecx, [ebp - 0x208]
push dword [ebp - 0x25c]
push edi
call fcn.1000a6d0
movsd xmm4, qword [0x1003a920]
lea eax, [ebp - 0x250]
movsd xmm5, qword [0x10037da8]
movaps xmm0, xmm4
movsd xmm3, qword [0x1003a918]
addsd xmm0, xmm5
movsd xmm2, qword [0x1003a910]
sub esp, 0x18
movsd xmm1, qword [0x1003a928]
mov ecx, esp
mov dword [ebp - 0x25c], esp
divsd xmm3, xmm0
push eax
movaps xmm0, xmm2
addsd xmm0, xmm5
addsd xmm3, xmm2
divsd xmm4, xmm0
movaps xmm0, xmm1
movsd qword [0x1003a918], xmm3
addsd xmm0, xmm5
addsd xmm4, xmm1
divsd xmm2, xmm0
movsd qword [0x1003a920], xmm4
addsd xmm2, xmm3
addsd xmm3, xmm5
movsd qword [0x1003a910], xmm2
divsd xmm1, xmm3
addsd xmm1, xmm4
movsd qword [0x1003a928], xmm1
call fcn.1001b540
sub esp, 0x18
mov byte [ebp - 4], 5
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x264], esp
mov ecx, esp
push eax
call fcn.1001b540
sub esp, 0x18
mov byte [ebp - 4], 6
lea eax, [ebp - 0x208]
mov ecx, esp
push eax
call fcn.1001b540
mov ecx, dword [ebp - 0x268]
xor edx, edx
mov byte [ebp - 4], 4
call fcn.10012330
add esp, 0x48
test eax, eax
je 0x10016b38
mov edi, 0xfffffffc
jmp 0x10016b9f
movsd xmm3, qword [0x1003a928]
xor edi, edi
movsd xmm1, qword [0x1003a918]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a910]
movaps xmm2, xmm1
mulsd xmm2, xmm3
addsd xmm4, qword [0x1003a920]
addsd xmm2, qword [0x1003a910]
movaps xmm0, xmm4
movsd qword [0x1003a920], xmm4
mulsd xmm0, xmm1
movsd qword [0x1003a910], xmm2
mulsd xmm2, xmm4
addsd xmm0, xmm3
addsd xmm2, xmm1
movsd qword [0x1003a928], xmm0
movsd qword [0x1003a918], xmm2
test esi, esi
je 0x10016bac
push esi
call fcn.1001e327
add esp, 4
movsd xmm6, qword [0x10037da8]
movsd xmm1, qword [0x1003a920]
lea eax, [ebp - 0x250]
movsd xmm5, qword [0x1003a918]
movaps xmm0, xmm1
movsd xmm4, qword [0x1003a910]
addsd xmm0, xmm6
movsd xmm3, qword [0x1003a928]
cmp dword [ebp - 0x23c], 8
cmovae eax, dword [ebp - 0x250]
xor ecx, ecx
divsd xmm5, xmm0
mov word [eax], cx
lea eax, [ebp - 0x1f0]
cmp dword [ebp - 0x1dc], 8
mov edx, dword [ebp - 0x23c]
cmovae eax, dword [ebp - 0x1f0]
mov dword [ebp - 0x1e0], ecx
mov word [eax], cx
lea eax, [ebp - 0x208]
cmp dword [ebp - 0x1f4], 8
mov dword [ebp - 0x1f8], ecx
cmovae eax, dword [ebp - 0x208]
mov word [eax], cx
movaps xmm0, xmm4
addsd xmm0, xmm6
addsd xmm5, xmm4
divsd xmm1, xmm0
movaps xmm0, xmm3
addsd xmm0, xmm6
addsd xmm1, xmm3
divsd xmm4, xmm0
movaps xmm0, xmm5
addsd xmm0, xmm6
addsd xmm4, xmm5
divsd xmm3, xmm0
movaps xmm0, xmm5
addsd xmm3, xmm1
movaps xmm2, xmm3
mulsd xmm2, xmm4
addsd xmm2, xmm1
movaps xmm1, xmm5
mulsd xmm1, xmm3
mulsd xmm0, xmm2
movsd qword [0x1003a920], xmm2
addsd xmm1, xmm4
addsd xmm0, xmm3
movsd qword [0x1003a910], xmm1
mulsd xmm1, xmm2
movsd qword [0x1003a928], xmm0
addsd xmm1, xmm5
movsd qword [0x1003a918], xmm1
cmp edx, 8
jb 0x10016cec
mov ecx, dword [ebp - 0x250]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10016ce2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016e4c
push edx
push ecx
call fcn.1001e35c
add esp, 8
mov edx, dword [ebp - 0x224]
cmp edx, 0x10
jb 0x10016d26
mov ecx, dword [ebp - 0x238]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10016d1c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016e4c
push edx
push ecx
call fcn.1001e35c
add esp, 8
mov edx, dword [ebp - 0x20c]
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 0xf
mov byte [ebp - 0x238], 0
cmp edx, 0x10
jb 0x10016d7b
mov ecx, dword [ebp - 0x220]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10016d71
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016e4c
push edx
push ecx
call fcn.1001e35c
add esp, 8
mov edx, dword [ebp - 0x1f4]
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x20c], 0xf
mov byte [ebp - 0x220], 0
cmp edx, 8
jb 0x10016dd6
mov ecx, dword [ebp - 0x208]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10016dcc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016e4c
push edx
push ecx
call fcn.1001e35c
add esp, 8
mov edx, dword [ebp - 0x1dc]
xor eax, eax
mov dword [ebp - 0x1f8], 0
mov dword [ebp - 0x1f4], 7
mov word [ebp - 0x208], ax
cmp edx, 8
jb 0x10016e2f
mov ecx, dword [ebp - 0x1f0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10016e25
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10016e4c
push edx
push ecx
call fcn.1001e35c
add esp, 8
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1001e319
mov esp, ebp
pop ebp
ret
call fcn.10023c5c
int3