Function at 0x10031aa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x103149c3
mov eax, dword fs:[0]
push eax
sub esp, 0xcc
mov eax, dword [0x1043900c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x1060f26a], 0
mov ecx, dword [ebp + 8]
mov esi, dword [0x1060b50c]
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xd4], esi
je 0x10032560
test ecx, ecx
je 0x10032560
mov eax, dword [0x1060b5e0]
cmp dword [eax + 0xaa8], 0
je 0x10032560
cmp byte [0x1043a060], 0
mov eax, dword [0x1060b274]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc8], eax
mov eax, dword [0x1060b288]
mov eax, dword [eax]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xcc], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xd0], eax
jne 0x10031d8d
mov edi, dword [0x1043a06c]
mov edx, edi
mov eax, dword [0x1043a068]
xor edx, 0xd28f2c5
xor eax, 0x1de26cd5
mov byte [0x1043a060], 1
mov dword [ebp - 0xa8], eax
mov ecx, edx
shld ecx, eax, 0xd
mov esi, dword [ebp - 0xa8]
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0xa8], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, cl
mov ecx, edx
xor byte [0x1043a061], al
mov eax, dword [0x1043a068]
xor eax, 0x1de26cd4
mov dword [ebp - 0xa8], eax
mov esi, dword [ebp - 0xa8]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0xa8], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, cl
mov ecx, edx
xor byte [0x1043a062], al
mov eax, dword [0x1043a068]
xor eax, 0x1de26cd7
mov dword [ebp - 0xa8], eax
mov esi, dword [ebp - 0xa8]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0xa8], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, cl
mov ecx, edx
xor byte [0x1043a063], al
mov eax, dword [0x1043a068]
xor eax, 0x1de26cd6
mov dword [ebp - 0xa8], eax
shld ecx, eax, 0xd
mov esi, dword [ebp - 0xa8]
xor edx, ecx
shl eax, 0xd
mov ecx, edx
xor esi, eax
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0xa8], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, cl
mov ecx, edx
xor byte [0x1043a064], al
mov eax, dword [0x1043a068]
xor eax, 0x1de26cd1
mov dword [ebp - 0xa8], eax
shld ecx, eax, 0xd
mov esi, dword [ebp - 0xa8]
xor edx, ecx
shl eax, 0xd
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0xa8], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
xor edi, 0xd28f2c5
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, cl
mov ecx, edx
xor byte [0x1043a065], al
mov eax, dword [0x1043a068]
xor eax, 0x1de26cd0
mov dword [ebp - 0xa8], eax
mov esi, dword [ebp - 0xa8]
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0xa8], esi
mov ecx, esi
mov dword [ebp - 0xb4], edx
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x1043a068]
shl eax, 0x11
xor edx, 0x1de26cd3
xor al, cl
mov ecx, edi
xor byte [0x1043a066], al
mov eax, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor edx, eax
mov ecx, edi
mov eax, edx
shrd eax, ecx, 7
shr ecx, 7
xor edx, eax
xor edi, ecx
mov esi, dword [ebp - 0xd4]
mov eax, edx
shld edi, eax, 0x11
shl eax, 0x11
xor al, dl
xor byte [0x1043a067], al
push ecx
push 0x1043a067
push 0x1043a061
lea ecx, [ebp - 0x40]
call fcn.1001a620
mov ecx, dword [ebp - 0xc0]
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 0
cmp dword [ebp - 0x2c], 0x10
push 0
cmovae eax, dword [ebp - 0x40]
push eax
call dword [ebp - 0xd0]
mov ecx, dword [0x1060b288]
push eax
call dword [ebp - 0xcc]
mov ecx, dword [0x1060b274]
push eax
call dword [ebp - 0xc8]
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
mov edi, eax
call fcn.10019dd0
test edi, edi
je 0x10032560
movq xmm0, qword [edi + 0x138]
xorps xmm1, xmm1
mov eax, dword [edi + 0x140]
movq qword [ebp - 0xbc], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0xd0], xmm0
movss dword [ebp - 0xc8], xmm0
movss xmm0, dword [0x1041f198]
mov dword [ebp - 0xb4], eax
movss dword [ebp - 0xcc], xmm1
movss dword [ebp - 0xac], xmm0
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll_clock]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov dword [ebp - 0xc4], ecx
movd xmm4, eax
mov dword [ebp - 0xa8], edx
cvtdq2ps xmm4, xmm4
mulss xmm4, dword [0x1041ec58]
cmp ecx, edx
je 0x10032560
movss xmm6, dword [ebp - 0xb4]
movss xmm7, dword [ebp - 0xb8]
movsd xmm5, qword [0x1041ede8]
movss xmm3, dword [0x1041f198]
nop dword [eax]
movss xmm0, dword [ecx + 0xc]
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
cvtss2sd xmm1, xmm4
addsd xmm0, xmm5
comisd xmm1, xmm0
jbe 0x10031efd
lea edi, [ecx + 0x10]
cmp edi, edx
je 0x10031ef2
lea esi, [ecx + 8]
mov ecx, dword [ebp - 0xa8]
nop dword [eax]
mov eax, dword [edi]
lea esi, [esi + 0x10]
mov dword [esi - 0x18], eax
add edi, 0x10
mov eax, dword [esi - 4]
mov dword [esi - 0x14], eax
mov eax, dword [esi]
mov dword [esi - 0x10], eax
mov eax, dword [esi + 4]
mov dword [esi - 0xc], eax
cmp edi, ecx
jne 0x10031ec0
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xa8]
mov esi, dword [ebp - 0xd4]
add edx, 0xfffffff0
mov dword [esi + 0x10], edx
jmp 0x10031f93
movq xmm0, qword [ecx]
mov eax, dword [ecx + 8]
movq qword [ebp - 0x20], xmm0
movss xmm1, dword [ebp - 0x20]
subss xmm1, dword [ebp - 0xbc]
movss xmm2, dword [ebp - 0x1c]
subss xmm2, xmm7
mov dword [ebp - 0x18], eax
movss xmm0, dword [ebp - 0x18]
subss xmm0, xmm6
mulss xmm1, xmm1
mulss xmm2, xmm2
mulss xmm0, xmm0
addss xmm2, xmm1
xorps xmm1, xmm1
addss xmm2, xmm0
movss xmm0, dword [ebp - 0xac]
sqrtss xmm1, xmm2
comiss xmm0, xmm1
ja 0x10031f5c
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jp 0x10031f8a
movss xmm0, dword [ecx]
movss dword [ebp - 0xc8], xmm0
movss xmm0, dword [ecx + 4]
movss dword [ebp - 0xcc], xmm0
movss xmm0, dword [ecx + 8]
movss dword [ebp - 0xac], xmm1
movss dword [ebp - 0xd0], xmm0
add ecx, 0x10
mov dword [ebp - 0xc4], ecx
mov dword [ebp - 0xa8], edx
cmp ecx, edx
jne 0x10031e90
movss xmm0, dword [ebp - 0xac]
ucomiss xmm0, xmm3
lahf
test ah, 0x44
jnp 0x10032560
cmp byte [0x1043a030], 0
mov esi, dword [ebp - 0xc0]
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xd8], eax
jne 0x1003204e
mov byte [0x1043a030], 1
xor edi, edi
nop dword [eax]
xor edx, edx
mov eax, edi
xor eax, dword [0x1043a040]
xor edx, dword [0x1043a044]
xor eax, 0x1de26cd5
xor edx, 0xd28f2c5
mov dword [ebp - 0xa8], eax
mov ecx, edx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor dword [ebp - 0xa8], eax
mov ecx, edx
mov eax, dword [ebp - 0xa8]
shrd eax, ecx, 7
xor dword [ebp - 0xa8], eax
shr ecx, 7
xor edx, ecx
mov ecx, dword [ebp - 0xa8]
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [ebp - 0xa8]
xor cl, byte [edi + 0x1043a031]
mov byte [edi + 0x1043a031], cl
inc edi
cmp edi, 0xb
jb 0x10031fe0
push ecx
push 0x1043a03b
push 0x1043a031
lea ecx, [ebp - 0xa4]
call fcn.1001a620
mov dword [ebp - 4], 1
lea eax, [ebp - 0xa4]
cmp dword [ebp - 0x90], 0x10
cmovae eax, dword [ebp - 0xa4]
cmp byte [0x1043a070], 0
mov dword [ebp - 0xa8], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xc4], eax
jne 0x100323b1
mov edi, dword [0x1043a084]
mov edx, edi
mov eax, dword [0x1043a080]
xor edx, 0xd28f2c5
xor eax, 0x1de26cd5
mov byte [0x1043a070], 1
mov dword [ebp - 0xac], eax
mov ecx, edx
shld ecx, eax, 0xd
mov esi, dword [ebp - 0xac]
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0xac], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x1043a071]
xor al, cl
mov ecx, edx
mov byte [0x1043a071], al
mov eax, dword [0x1043a080]
xor eax, 0x1de26cd4
mov dword [ebp - 0xac], eax
mov esi, dword [ebp - 0xac]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0xac], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x1043a072]
xor al, cl
mov ecx, edx
mov byte [0x1043a072], al
mov eax, dword [0x1043a080]
xor eax, 0x1de26cd7
mov dword [ebp - 0xac], eax
mov esi, dword [ebp - 0xac]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0xac], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor al, byte [0x1043a073]
xor al, cl
mov byte [0x1043a073], al
mov eax, dword [0x1043a080]
xor eax, 0x1de26cd6
mov dword [ebp - 0xac], eax
mov esi, dword [ebp - 0xac]
xor edx, 0xd28f2c5
mov ecx, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0xac], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x1043a074]
xor al, cl
mov ecx, edx
mov byte [0x1043a074], al
mov eax, dword [0x1043a080]
xor eax, 0x1de26cd1
mov dword [ebp - 0xac], eax
mov esi, dword [ebp - 0xac]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0xac], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x1043a075]
xor al, cl
mov ecx, edx
mov byte [0x1043a075], al
mov eax, dword [0x1043a080]
xor eax, 0x1de26cd0
mov dword [ebp - 0xac], eax
mov esi, dword [ebp - 0xac]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0xac], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x1043a076]
xor al, cl
mov ecx, edx
mov byte [0x1043a076], al
mov eax, dword [0x1043a080]
xor eax, 0x1de26cd3
mov dword [ebp - 0xac], eax
mov esi, dword [ebp - 0xac]
shld ecx, eax, 0xd
shl eax, 0xd
xor esi, eax
xor edx, ecx
mov eax, esi
mov ecx, edx
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0xac], esi
mov ecx, esi
mov eax, ecx
shld edx, eax, 0x11
mov edx, edi
xor edi, 0xd28f2c5
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x1043a077]
xor al, cl
mov ecx, edx
mov byte [0x1043a077], al
mov eax, dword [0x1043a080]
xor eax, 0x1de26cd2
mov dword [ebp - 0xac], eax
mov esi, dword [ebp - 0xac]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor esi, eax
mov ecx, edx
mov eax, esi
shrd eax, ecx, 7
xor esi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0xac], esi
mov ecx, esi
mov esi, dword [ebp - 0xc0]
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x1043a080]
shl eax, 0x11
xor edx, 0x1de26cdd
xor al, byte [0x1043a078]
xor al, cl
mov ecx, edi
mov byte [0x1043a078], al
mov eax, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, ecx
xor edx, eax
mov ecx, edi
mov eax, edx
shrd eax, ecx, 7
xor edx, eax
shr ecx, 7
xor edi, ecx
mov eax, edx
shld edi, eax, 0x11
shl eax, 0x11
xor al, dl
xor byte [0x1043a079], al
push ecx
push 0x1043a079
push 0x1043a071
lea ecx, [ebp - 0x8c]
call fcn.1001a620
mov byte [ebp - 4], 2
lea eax, [ebp - 0x8c]
cmp dword [ebp - 0x78], 0x10
mov ecx, esi
push 0
cmovae eax, dword [ebp - 0x8c]
push eax
call dword [ebp - 0xc4]
push 0
push dword [ebp - 0xa8]
cmp eax, 1
mov ecx, esi
sete byte [ebp - 0xad]
call dword [ebp - 0xd8]
lea ecx, [ebp - 0x13]
test eax, eax
jns 0x10032417
neg eax
mov edx, eax
call fcn.10032710
dec eax
mov byte [eax], 0x2d
jmp 0x1003241e
mov edx, eax
call fcn.10032710
push ecx
lea ecx, [ebp - 0x13]
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.1001a620
mov byte [ebp - 4], 3
cmp byte [0x1060f26a], 0
je 0x10032542
inc dword [0x10610580]
xorps xmm0, xmm0
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
movss xmm0, dword [ebp - 0xc8]
movss xmm1, dword [ebp - 0xcc]
mov byte [ebp - 4], 4
movss dword [ebp - 0x74], xmm0
movss xmm0, dword [ebp - 0xd0]
movss dword [ebp - 0x70], xmm1
movss dword [ebp - 0x6c], xmm0
mov dword [ebp - 0x68], 0xff
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll_clock]
cmp dword [ebp - 0x2c], 0x10
lea ecx, [ebp - 0x60]
push dword [ebp - 0x30]
movd xmm0, eax
lea eax, [ebp - 0x40]
cmovae eax, dword [ebp - 0x40]
cvtdq2ps xmm0, xmm0
push eax
mulss xmm0, dword [0x1041ec58]
movss dword [ebp - 0x64], xmm0
call fcn.100325b0
mov edi, dword [ebp - 0xd4]
mov al, byte [ebp - 0xad]
mov byte [ebp - 0x48], al
mov eax, dword [0x10610580]
mov esi, dword [edi + 4]
mov dword [ebp - 0x44], eax
cmp esi, dword [edi + 8]
je 0x1003251b
movq xmm0, qword [ebp - 0x74]
lea ecx, [esi + 0x14]
mov eax, dword [ebp - 0x6c]
movq qword [esi], xmm0
movss xmm0, dword [ebp - 0x64]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x68]
mov dword [esi + 0xc], eax
lea eax, [ebp - 0x60]
push eax
movss dword [esi + 0x10], xmm0
call fcn.1002c0b0
mov al, byte [ebp - 0x48]
mov byte [esi + 0x2c], al
mov eax, dword [ebp - 0x44]
mov dword [esi + 0x30], eax
add dword [edi + 4], 0x34
jmp 0x10032527
lea eax, [ebp - 0x74]
mov ecx, edi
push eax
push esi
call fcn.100328a0
cmp dword [0x10610580], 3
jle 0x1003253a
mov dword [0x10610580], 0
lea ecx, [ebp - 0x74]
call fcn.100313e0
lea ecx, [ebp - 0x40]
call fcn.10019dd0
lea ecx, [ebp - 0x8c]
call fcn.10019dd0
lea ecx, [ebp - 0xa4]
call fcn.10019dd0
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.102bb91c
mov esp, ebp
pop ebp
ret 4