Function at 0x1004db80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc8
mov eax, dword [0x10191030]
movaps xmm0, xmmword [0x101837d0]
push esi
push edi
or dword [eax + 0x1a88], 2
xor ecx, ecx
mov dword [eax + 0x1aa8], 0x44228000
mov dword [eax + 0x1aac], 0x44228000
mov dword [eax + 0x1a90], 2
movups xmmword [esp + 0x40], xmm0
mov dword [esp + 0x50], 0x3c203d30
mov dword [esp + 0x54], 0x333e1072
mov dword [esp + 0x58], 0x3b3e3931
mov dword [esp + 0x5c], 0x2621
mov al, byte [esp + 0x40]
xor byte [esp + ecx + 0x41], al
inc ecx
cmp ecx, 0x1d
jb 0x1004dbe6
push 0xb
xor edx, edx
mov word [esp + 0x62], 0x100
lea ecx, [esp + 0x45]
call fcn.100233e0
mov esi, dword [0x10191030]
mov cl, 0x49
movss xmm1, dword [0x10182fb0]
mov ch, 0x41
movss xmm2, dword [0x10182ed0]
mov dl, 0x5a
mov byte [esp + 0x2c], 8
add esp, 4
mov eax, dword [esi + 0x1a08]
xor cl, byte [esp + 0x28]
mov byte [esp + 0x2a], cl
mov cl, byte [esp + 0x28]
movss xmm3, dword [eax + 0xc]
xor dl, cl
movss xmm4, dword [eax + 0x10]
movaps xmm0, xmm3
mov byte [eax + 0x7c], 1
addss xmm0, xmm1
mov eax, dword [esi + 0x1a08]
addss xmm2, xmm4
mov byte [esp + 0x1e], 0x4f
xor ch, cl
mov byte [esp + 0x1f], 0x29
mov byte [esp + 0x2d], ch
mov edi, dword [eax + 0x278]
mov al, 0x5f
xor al, byte [esp + 0x28]
mov ah, 0x46
mov byte [esp + 0x29], al
mov dh, ah
mov al, byte [esp + 0x1e]
xor dh, cl
xor al, cl
mov byte [esp + 0x2b], dl
mov byte [esp + 0x2f], al
xor ah, cl
mov al, byte [esp + 0x1f]
xor al, cl
mov byte [esp + 0x2e], dh
mov edx, dword [esi + 0x18d0]
lea ecx, [esp + 0x29]
mov byte [esp + 0x31], 0
lea esi, [ecx + 1]
movss dword [esp + 0x34], xmm3
movss dword [esp + 0x20], xmm4
movss dword [esp + 0x14], xmm0
movss dword [esp + 0x18], xmm2
mov byte [esp + 0x2c], ah
mov byte [esp + 0x30], al
mov word [esp + 0x31], 0x100
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004dcd8
sub ecx, esi
lea eax, [esp + 0x29]
add ecx, eax
cmp eax, ecx
je 0x1004dd41
test edx, edx
jne 0x1004dcf5
mov eax, dword [edi + 0x28]
mov edx, dword [eax + 8]
push dword [esp + 0x18]
movups xmm0, xmmword [edi + 0x60]
lea eax, [esp + 0x2d]
push dword [esp + 0x18]
movss xmm2, dword [0x10182f78]
lea esi, [edi + 0x60]
push 0
push ecx
mov dword [esp], 0
push ecx
push eax
lea eax, [esp + 0x58]
mov ecx, edx
push eax
push 0xc80ac8c8
push edi
movups xmmword [esp + 0x64], xmm0
call fcn.10039e30
movss xmm3, dword [esp + 0x34]
movss xmm4, dword [esp + 0x20]
jmp 0x1004dd44
lea esi, [edi + 0x60]
movss xmm1, dword [0x10182f9c]
lea eax, [esp + 0x40]
movss xmm2, dword [0x10182f74]
movaps xmm0, xmm3
addss xmm0, xmm1
mov ecx, edi
movss xmm1, dword [0x1018305c]
push 0x990d0dd9
push eax
lea eax, [esp + 0x40]
movss dword [esp + 0x1c], xmm0
movaps xmm0, xmm2
addss xmm0, xmm4
addss xmm2, xmm4
push eax
lea eax, [esp + 0x20]
push eax
movss dword [esp + 0x28], xmm0
movaps xmm0, xmm3
addss xmm0, xmm1
movss dword [esp + 0x4c], xmm2
movss xmm2, dword [0x10183024]
movaps xmm1, xmm3
addss xmm1, xmm2
movss dword [esp + 0x48], xmm0
movss xmm0, dword [0x10183060]
addss xmm0, xmm4
movss dword [esp + 0x34], xmm1
movss dword [esp + 0x50], xmm1
movss dword [esp + 0x54], xmm0
call fcn.10036420
movss xmm1, dword [0x1018302c]
lea eax, [esp + 0x40]
movss xmm0, dword [esp + 0x34]
mov ecx, edi
movss xmm4, dword [esp + 0x20]
addss xmm0, xmm1
movss xmm1, dword [0x1018301c]
push 0xffd9d9d9
push eax
lea eax, [esp + 0x40]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [0x1018303c]
addss xmm0, xmm4
push eax
lea eax, [esp + 0x20]
push eax
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x44]
addss xmm0, xmm1
movss xmm1, dword [esp + 0x34]
movss dword [esp + 0x50], xmm1
movss dword [esp + 0x48], xmm0
movss xmm0, dword [0x1018303c]
addss xmm0, xmm4
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [0x10182f90]
addss xmm0, xmm4
movss dword [esp + 0x54], xmm0
call fcn.10036420
movss xmm1, dword [0x10183028]
lea eax, [esp + 0x38]
movss xmm0, dword [esp + 0x34]
movss xmm2, dword [0x10182f8c]
addss xmm0, xmm1
movss xmm1, dword [0x10183020]
addss xmm2, dword [esp + 0x20]
push 0xf
push ecx
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x3c]
addss xmm0, xmm1
mov dword [esp], 0
push 0xffd9d9d9
push eax
movss dword [esp + 0x28], xmm2
lea eax, [esp + 0x24]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [0x1018303c]
addss xmm0, dword [esp + 0x30]
movss dword [esp + 0x4c], xmm0
push eax
mov ecx, edi
call fcn.100362d0
movss xmm0, dword [0x1018304c]
lea eax, [esp + 0x14]
addss xmm0, dword [esp + 0x20]
movss xmm1, dword [esp + 0x24]
xorps xmm3, xmm3
movss xmm2, dword [0x10182f20]
push 0x17
push ecx
mov dword [esp], 0x40c0af31
mov ecx, edi
push eax
movss dword [esp + 0x20], xmm1
movss dword [esp + 0x24], xmm0
call fcn.10035c20
push 0xffd9d9d9
push dword [edi + 0x54]
mov ecx, edi
push dword [edi + 0x5c]
call fcn.10035720
movss xmm1, dword [0x10182f94]
xor ecx, ecx
movss xmm2, dword [0x10183064]
movss xmm3, dword [esp + 0x34]
addss xmm2, dword [esp + 0x20]
movaps xmm0, xmmword [0x101840f0]
addss xmm3, xmm1
movups xmmword [esp + 0x6c], xmm0
mov dword [edi + 0x54], 0
movaps xmm0, xmmword [0x101836b0]
movss dword [esp + 0x18], xmm2
movss dword [esp + 0x14], xmm3
movups xmmword [esp + 0x7c], xmm0
mov dword [esp + 0x8c], 0x25662a2a
mov dword [esp + 0x90], 0x3227232e
mov dword [esp + 0x94], 0x6835
mov al, byte [esp + 0x6c]
xor byte [esp + ecx + 0x6d], al
inc ecx
cmp ecx, 0x29
jb 0x1004dfa1
mov edx, dword [0x10191030]
lea ecx, [esp + 0x6d]
lea eax, [ecx + 1]
mov word [esp + 0x96], 0x100
mov dword [esp + 0x24], eax
mov edx, dword [edx + 0x18d0]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004dfd0
sub ecx, dword [esp + 0x24]
lea eax, [esp + 0x6d]
add ecx, eax
cmp eax, ecx
je 0x1004e030
test edx, edx
jne 0x1004dff3
mov eax, dword [edi + 0x28]
mov edx, dword [eax + 8]
mov eax, esi
jmp 0x1004dff6
lea eax, [edi + 0x60]
push dword [esp + 0x18]
movups xmm0, xmmword [eax]
lea eax, [esp + 0x71]
push dword [esp + 0x18]
movss xmm2, dword [0x10182f28]
push 0
push ecx
mov dword [esp], 0
push ecx
push eax
lea eax, [esp + 0x58]
mov ecx, edx
push eax
push 0xc80ac8c8
push edi
movups xmmword [esp + 0x64], xmm0
call fcn.10039e30
movss xmm0, dword [0x10182efc]
xor ecx, ecx
movss xmm2, dword [esp + 0x34]
movss xmm1, dword [0x1018306c]
addss xmm2, xmm0
movaps xmm0, xmmword [0x10183610]
addss xmm1, dword [esp + 0x20]
movups xmmword [esp + 0x98], xmm0
mov dword [esp + 0xc8], 0x540300
movaps xmm0, xmmword [0x10183fd0]
movups xmmword [esp + 0xa8], xmm0
mov byte [esp + 0xcc], 0
movaps xmm0, xmmword [0x101835e0]
movss dword [esp + 0x14], xmm2
movss dword [esp + 0x18], xmm1
movups xmmword [esp + 0xb8], xmm0
nop
mov al, byte [esp + 0x98]
xor byte [esp + ecx + 0x99], al
inc ecx
cmp ecx, 0x32
jb 0x1004e0a0
mov eax, dword [0x10191030]
lea ecx, [esp + 0x99]
mov word [esp + 0xcb], 0x100
mov edx, dword [eax + 0x18d0]
lea eax, [ecx + 1]
mov dword [esp + 0x24], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1004e0d7
sub ecx, dword [esp + 0x24]
lea eax, [esp + 0x99]
add ecx, eax
cmp eax, ecx
je 0x1004e136
test edx, edx
jne 0x1004e0f9
mov eax, dword [edi + 0x28]
mov edx, dword [eax + 8]
push dword [esp + 0x18]
movups xmm0, xmmword [esi]
lea eax, [esp + 0x9d]
push dword [esp + 0x18]
movss xmm2, dword [0x10182f30]
push 0
push ecx
mov dword [esp], 0
push ecx
push eax
lea eax, [esp + 0x58]
mov ecx, edx
push eax
push 0xc80ac8c8
push edi
movups xmmword [esp + 0x64], xmm0
call fcn.10039e30
call fcn.10025ac0
pop edi
pop esi
mov esp, ebp
pop ebp
ret