Function at 0x10081a60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x6724
call fcn.1017e400
cmp byte [0x10632e5c], 0
push ebx
push esi
push edi
mov dword [esp + 0x50], ecx
je 0x10082149
mov eax, dword [0x1063c34c]
mov ecx, dword [eax]
test ecx, ecx
je 0x10082149
mov eax, dword [ecx]
xor edx, edx
push dword [0x1063c5b8]
push dword [eax + 0x270]
lea eax, [esp + 0x48]
push eax
call fcn.1002a9f0
test al, al
je 0x10082149
mov eax, dword [0x1063c34c]
xor edx, edx
push dword [0x1063c5b8]
mov ecx, dword [eax]
mov eax, dword [ecx]
push dword [eax + 0x430]
lea eax, [esp + 0x48]
push eax
call fcn.1002a9f0
mov esi, eax
test esi, esi
je 0x10082149
mov ecx, esi
call fcn.10078b80
test al, al
je 0x10082149
mov ecx, esi
call fcn.1006bf70
test eax, eax
je 0x10082149
mov eax, dword [0x1063c3f0]
mov ecx, 0xb439d47
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, dword [0x1075ab9c]
vmulss xmm0, xmm1, dword [eax + 0x20]
vmovss dword [esp + 0x18], xmm0
call fcn.10111590
vmovss xmm0, dword [eax + esi]
vcomiss xmm0, dword [esp + 0x18]
jbe 0x10081b4c
mov ecx, 0x2d0850d3
call fcn.10111590
vmovss xmm0, dword [eax + esi]
vcomiss xmm0, dword [esp + 0x18]
ja 0x10082149
mov eax, dword [0x1063c34c]
mov ecx, 0xec5d89e5
mov esi, dword [eax]
call fcn.10111590
mov ecx, esi
vmovq xmm0, qword [eax + esi]
mov eax, dword [eax + esi + 8]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x6c]
push eax
vmovq qword [esp + 0x2c], xmm0
call fcn.1006bcb0
mov ecx, dword [0x1063c34c]
lea eax, [esp + 0x60]
push eax
mov ecx, dword [ecx]
call fcn.1006bce0
mov ecx, dword [0x1063c36c]
xor ebx, ebx
push dword [0x1063c5b8]
vmovss xmm0, dword [0x102289f0]
vmovss dword [esp + 0x18], xmm0
mov eax, dword [ecx]
xor edx, edx
vpxor xmm0, xmm0, xmm0
mov dword [esp + 0x20], ebx
vxorps xmm1, xmm1, xmm1
push dword [eax + 0x50]
lea eax, [esp + 0x48]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x64], ebx
mov ebx, 1
push eax
vmovss dword [esp + 0x24], xmm1
vmovq qword [esp + 0x40], xmm0
vmovq qword [esp + 0x60], xmm0
mov dword [esp + 0x2c], ebx
call fcn.1002a9f0
cmp eax, ebx
jl 0x10082149
mov edi, 0x363c
mov dword [esp + 0x4c], 0x1067bddc
mov dword [esp + 0x24], edi
mov ecx, dword [0x1063c374]
xor edx, edx
push ebx
push dword [0x1063c5b8]
mov eax, dword [ecx]
push dword [eax + 0xc]
lea eax, [esp + 0x90]
push eax
call fcn.1002a9f0
mov ebx, eax
test ebx, ebx
je 0x10081f1d
mov ecx, dword [0x1063c34c]
cmp ebx, dword [ecx]
je 0x10081f1d
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
push dword [0x1063c5b8]
xor edx, edx
push dword [eax + 0x24]
lea eax, [esp + 0x98]
push eax
call fcn.1002a9f0
test al, al
jne 0x10081f1d
mov eax, dword [ebx]
xor edx, edx
push dword [0x1063c5b8]
mov ecx, ebx
push dword [eax + 0x270]
lea eax, [esp + 0xa4]
push eax
call fcn.1002a9f0
test al, al
je 0x10081f1d
mov eax, dword [0x1063c34c]
mov ecx, ebx
mov edx, dword [0x1063c41c]
push dword [eax]
call edx
test al, al
je 0x10081f1d
mov ecx, 0xe7cc7916
call fcn.10111590
cmp byte [eax + ebx], 0
jne 0x10081f1d
cmp edi, 0xdc53c
jae 0x10082155
push dword [esp + 0x4c]
lea ecx, [esp + 0xac]
call fcn.10085b70
cmp byte [esp + 0x36d0], 0
je 0x10081ef4
vmovss xmm0, dword [esp + 0x28]
vmovss xmm1, dword [esp + 0x2c]
vsubss xmm2, xmm1, dword [esp + 0x3688]
vsubss xmm0, xmm0, dword [esp + 0x3684]
vmovss xmm1, dword [esp + 0x30]
vsubss xmm1, xmm1, dword [esp + 0x368c]
vmulss xmm0, xmm0, xmm0
vfmadd213ss xmm2, xmm2, xmm0
vfmadd213ss xmm1, xmm1, xmm2
vsqrtss xmm0, xmm1, xmm1
vmovss xmm1, dword [esp + 0x14]
vcomiss xmm1, xmm0
jbe 0x10081d78
mov eax, dword [esp + 0x36a4]
vmovss dword [esp + 0x14], xmm0
vmovq xmm0, qword [esp + 0x369c]
vmovq qword [esp + 0x34], xmm0
vmovq xmm0, qword [esp + 0x3684]
vmovq qword [esp + 0x54], xmm0
vmovss xmm0, dword [esp + 0x36c4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x368c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x5c], eax
vmovss dword [esp + 0x18], xmm0
cmp dword [0x10754cf4], 0
je 0x10081ef4
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
push dword [0x1063c5b8]
xor edx, edx
push dword [eax + 0x28]
lea eax, [esp + 0x80]
push eax
call fcn.1002a9f0
cmp eax, 0x41
jae 0x10082155
imul edi, eax, 0x363c
add edi, 0x106787a0
je 0x10081ef4
mov esi, dword [edi + 0x10]
test esi, esi
je 0x10081ef4
add esi, 0xffffffff
js 0x10081ef4
cmp dword [edi + 0x10], esi
jbe 0x10082150
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 8]
add ecx, esi
dec eax
and ecx, eax
mov eax, dword [edi + 4]
mov eax, dword [eax + ecx*4]
vmovss xmm0, dword [eax + 0x44]
call fcn.1008c600
test al, al
jne 0x10081e04
sub esi, 1
jns 0x10081dd2
jmp 0x10081ef4
cmp esi, 0xffffffff
jle 0x10081ef4
cmp dword [edi + 0x10], esi
jbe 0x10082150
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 8]
add ecx, esi
dec eax
and ecx, eax
mov eax, dword [edi + 4]
push dword [eax + ecx*4]
lea ecx, [esp + 0x36ec]
call fcn.10082180
vmovss xmm0, dword [esp + 0x28]
vmovss xmm1, dword [esp + 0x2c]
vsubss xmm2, xmm1, dword [esp + 0x3700]
vsubss xmm0, xmm0, dword [esp + 0x36fc]
vmovss xmm1, dword [esp + 0x30]
vsubss xmm1, xmm1, dword [esp + 0x3704]
vmulss xmm0, xmm0, xmm0
vfmadd213ss xmm2, xmm2, xmm0
vfmadd213ss xmm1, xmm1, xmm2
vsqrtss xmm0, xmm1, xmm1
vmovss xmm1, dword [esp + 0x14]
vcomiss xmm1, xmm0
jbe 0x10081ecb
mov eax, dword [esp + 0x3710]
vmovss dword [esp + 0x14], xmm0
vmovq xmm0, qword [esp + 0x3708]
vmovq qword [esp + 0x34], xmm0
vmovq xmm0, qword [esp + 0x36fc]
vmovq qword [esp + 0x54], xmm0
vmovss xmm0, dword [esp + 0x372c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3704]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x5c], eax
vmovss dword [esp + 0x18], xmm0
lea ecx, [esp + 0x36e8]
call fcn.10082a30
mov eax, dword [esp + 0x36e8]
push 8
push eax
mov dword [esp + 0x36f0], 0
call fcn.1017d3f8
add esp, 8
lea ecx, [esp + 0xa8]
call fcn.10082950
mov eax, dword [esp + 0xa8]
push 8
push eax
mov dword [esp + 0xb0], 0
call fcn.1017d3f8
add esp, 8
mov ecx, dword [0x1063c36c]
xor edx, edx
push dword [0x1063c5b8]
mov ebx, dword [esp + 0x24]
add dword [esp + 0x28], 0x363c
inc ebx
mov eax, dword [ecx]
add dword [esp + 0x50], 0x363c
mov dword [esp + 0x24], ebx
push dword [eax + 0x50]
lea eax, [esp + 0x48]
push eax
call fcn.1002a9f0
cmp ebx, eax
jg 0x10081f60
mov edi, dword [esp + 0x24]
jmp 0x10081c03
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x10082149
vmovss xmm0, dword [esp + 0x14]
vcomiss xmm0, dword [0x1022885c]
ja 0x10082149
mov eax, dword [esp + 0x50]
mov ecx, esi
vmovss xmm0, dword [esp + 0x60]
push 7
vaddss xmm0, xmm0, dword [eax + 0xc]
vmovss dword [esp + 0x44], xmm0
vmovss xmm0, dword [esp + 0x68]
vaddss xmm0, xmm0, dword [eax + 0x10]
vmovss dword [esp + 0x48], xmm0
vmovss xmm0, dword [esp + 0x6c]
vaddss xmm0, xmm0, dword [eax + 0x14]
lea eax, [esp + 0x7c]
push eax
vmovss dword [esp + 0x50], xmm0
call fcn.100819c0
lea edx, [esp + 0x40]
push edx
mov edx, eax
lea ecx, [esp + 0x70]
call fcn.100df2b0
mov eax, dword [0x1063c34c]
mov ecx, 0xb439d47
vmovss dword [esp + 0x30], xmm2
vmovss dword [esp + 0x2c], xmm1
vmovss dword [esp + 0x28], xmm0
mov esi, dword [eax]
call fcn.10111590
lea ecx, [esp + 0x34]
call fcn.1006b9d0
mov ecx, 0xec5d89e5
vmovss dword [esp + 0x48], xmm2
vmovss dword [esp + 0x44], xmm1
vmovss dword [esp + 0x40], xmm0
call fcn.10111590
vmovss xmm0, dword [esp + 0x54]
lea ecx, [esp + 0x34]
vsubss xmm0, xmm0, dword [eax + esi]
vmovss dword [esp + 0x34], xmm0
vmovss xmm0, dword [esp + 0x58]
vsubss xmm0, xmm0, dword [eax + esi + 4]
vmovss dword [esp + 0x38], xmm0
vxorps xmm0, xmm0, xmm0
vmovss dword [esp + 0x3c], xmm0
call fcn.10081860
vmovss xmm0, dword [esp + 0x40]
vmulss xmm1, xmm0, dword [esp + 0x34]
vmovss xmm2, dword [esp + 0x38]
vfmadd132ss xmm2, xmm1, dword [esp + 0x44]
vcomiss xmm2, dword [0x102285b8]
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
jbe 0x10082096
call fcn.1006beb0
mov ecx, 0x7ca9f5ea
mov dword [esp + 0x20], eax
mov esi, 0xb4
call fcn.10111590
jmp 0x100820ae
call fcn.1006beb0
mov ecx, 0x7ca9f5ea
mov dword [esp + 0x20], eax
call fcn.10111590
mov esi, 0x41
mov eax, dword [eax + ebx]
cmp eax, 1
jle 0x100820ca
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, esi
vmulss xmm0, xmm0, dword [0x10228644]
vcvttss2si esi, xmm0
cmp dword [esp + 0x20], esi
jg 0x100820ed
vmovss xmm0, dword [0x10228848]
vcomiss xmm0, dword [esp + 0x14]
jb 0x100820ed
mov ebx, dword [esp + 0x50]
or dword [ebx + 0x30], 0x800
jmp 0x100820f5
mov ebx, dword [esp + 0x50]
or dword [ebx + 0x30], 1
vmovss xmm0, dword [esp + 0x28]
vaddss xmm0, xmm0, dword [ebx + 0xc]
vmovss dword [ebx + 0xc], xmm0
vmovss xmm0, dword [ebx + 0x10]
vaddss xmm0, xmm0, dword [esp + 0x2c]
vmovss dword [ebx + 0x10], xmm0
vmovss xmm0, dword [esp + 0x30]
vaddss xmm0, xmm0, dword [ebx + 0x14]
vmovss dword [ebx + 0x14], xmm0
call fcn.1008bf30
mov eax, dword [0x1063c3f0]
vaddss xmm0, xmm0, dword [esp + 0x18]
vdivss xmm0, xmm0, dword [eax + 0x20]
vaddss xmm0, xmm0, dword [0x102285c0]
vcvttss2si eax, xmm0
mov dword [ebx + 8], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.10082a20
call fcn.10085e90
int3