Function at 0x1003abc0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100ca30b
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1d0
mov eax, dword [0x100f2040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp byte [edi + 0x20], 0
mov ecx, 0xe10
je 0x1003b0a0
mov esi, dword [edi + 0x24]
test esi, esi
jle 0x1003ac1f
dec esi
mov dword [edi + 0x24], esi
test esi, esi
js 0x1003b08f
mov eax, esi
cdq
idiv ecx
mov eax, 0x88888889
mov ecx, edx
imul ecx
add edx, ecx
mov ecx, 0x3c
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x50], eax
mov eax, esi
cdq
idiv ecx
mov esi, edx
mov dword [ebp - 4], 0
xorps xmm0, xmm0
push 8
mov dword [ebp - 0x30], 0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.10089110
lea ecx, [ebp - 0x30]
add esp, 4
mov dword [eax + 4], 0
mov dword [ebp - 0x30], eax
mov dword [eax], ecx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov eax, dword [ebp - 0x50]
xor ecx, ecx
mov dword [ebp - 4], 1
push esi
push eax
cmp eax, 0xa
jae 0x1003ae2d
cmp esi, 0xa
jae 0x1003ad85
mov dl, 0x76
mov dword [ebp - 0x8c], 0x12534676
mov dword [ebp - 0x88], 0x1253464c
mov byte [ebp - 0x84], cl
nop dword [eax + eax]
xor byte [ebp + ecx - 0x8b], dl
inc ecx
cmp ecx, 7
jae 0x1003acf5
mov dl, byte [ebp - 0x8c]
jmp 0x1003ace0
sub esp, 0x1c
mov byte [ebp - 0x84], 0
mov edx, esp
lea ecx, [ebp - 0x8b]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003ad25
sub ecx, esi
lea eax, [ebp - 0x8b]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0xe4]
push eax
call fcn.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x30]
cmp eax, esi
je 0x1003ad65
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x30]
call fcn.100082f0
lea ecx, [ebp - 0xe4]
call fcn.10002f50
mov eax, dword [ebp - 0xe4]
mov dword [ebp - 0xe4], 0
jmp 0x1003af88
mov dl, 0x73
mov dword [ebp - 0x68], 0x17564373
mov dword [ebp - 0x64], 0x175649
xor byte [ebp + ecx - 0x67], dl
inc ecx
cmp ecx, 6
jae 0x1003ada4
mov dl, byte [ebp - 0x68]
jmp 0x1003ad95
sub esp, 0x1c
mov byte [ebp - 0x61], 0
mov edx, esp
lea ecx, [ebp - 0x67]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003add0
sub ecx, esi
lea eax, [ebp - 0x67]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x100]
push eax
call fcn.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x30]
cmp eax, esi
je 0x1003ae0d
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x30]
call fcn.100082f0
lea ecx, [ebp - 0x100]
call fcn.10002f50
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0x100], 0
jmp 0x1003af88
cmp esi, 0xa
jae 0x1003aedd
mov dl, 0xd
mov dword [ebp - 0x70], 0x3769280d
mov dword [ebp - 0x6c], 0x69283d
xor byte [ebp + ecx - 0x6f], dl
inc ecx
cmp ecx, 6
jae 0x1003ae55
mov dl, byte [ebp - 0x70]
jmp 0x1003ae46
sub esp, 0x1c
mov byte [ebp - 0x69], 0
mov edx, esp
lea ecx, [ebp - 0x6f]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003ae80
sub ecx, esi
lea eax, [ebp - 0x6f]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x11c]
push eax
call fcn.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x30]
cmp eax, esi
je 0x1003aebd
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x30]
call fcn.100082f0
lea ecx, [ebp - 0x11c]
call fcn.10002f50
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x11c], 0
jmp 0x1003af88
mov dl, 0x40
mov dword [ebp - 0x58], 0x7a246540
mov word [ebp - 0x54], 0x2465
mov byte [ebp - 0x52], 0
xor byte [ebp + ecx - 0x57], dl
inc ecx
cmp ecx, 5
jae 0x1003aeff
mov dl, byte [ebp - 0x58]
jmp 0x1003aef0
sub esp, 0x1c
mov byte [ebp - 0x52], 0
mov edx, esp
lea ecx, [ebp - 0x57]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003af30
sub ecx, esi
lea eax, [ebp - 0x57]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x138]
push eax
call fcn.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x30]
cmp eax, esi
je 0x1003af6d
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x30]
call fcn.100082f0
lea ecx, [ebp - 0x138]
call fcn.10002f50
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], 0
push 8
push eax
call fcn.100891b0
movaps xmm0, xmmword [0x100e9620]
lea eax, [ebp - 0x2c]
add esp, 8
mov dword [ebp - 0xb8], 0x27095f21
cmp dword [ebp - 0x18], 0xf
movups xmmword [ebp - 0xc8], xmm0
cmova eax, dword [ebp - 0x2c]
xor ecx, ecx
push eax
mov byte [ebp - 0xb4], 0
mov al, byte [ebp + ecx - 0xc7]
xor al, byte [ebp - 0xc8]
mov byte [ebp + ecx - 0xc7], al
inc ecx
cmp ecx, 0x13
jb 0x1003afc0
sub esp, 0x1c
mov byte [ebp - 0xb4], 0
mov edx, esp
lea ecx, [ebp - 0xc7]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003b010
sub ecx, esi
lea eax, [ebp - 0xc7]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x154]
push eax
call fcn.1000d650
add esp, 0x24
mov byte [ebp - 4], 2
mov edx, eax
mov ecx, dword [edi + 8]
call fcn.1001e150
lea ecx, [ebp - 0x154]
call fcn.10002f50
mov eax, dword [ebp - 0x154]
push 8
push eax
mov dword [ebp - 0x154], 0
call fcn.100891b0
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.10002f50
mov eax, dword [ebp - 0x30]
push 8
push eax
mov dword [ebp - 0x30], 0
call fcn.100891b0
add esp, 8
cmp dword [edi + 0x24], 0
jg 0x1003b0a0
mov byte [edi + 0x20], 0
mov dword [edi + 0x24], 0
cmp byte [edi + 0x21], 0
je 0x1003b559
movzx eax, word [edi + 0x28]
mov ecx, eax
test ax, ax
jle 0x1003b0bd
dec eax
mov word [edi + 0x28], ax
movzx ecx, ax
test cx, cx
js 0x1003b548
movsx esi, cx
mov ecx, 0xe10
mov eax, esi
cdq
idiv ecx
mov eax, 0x88888889
mov ecx, edx
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
movzx eax, cx
mov ecx, 0x3c
mov dword [ebp - 0x50], eax
mov eax, esi
cdq
idiv ecx
movzx esi, dx
mov dword [ebp - 4], 3
xorps xmm0, xmm0
push 8
mov dword [ebp - 0x4c], 0
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
call fcn.10089110
lea ecx, [ebp - 0x4c]
add esp, 4
mov dword [eax + 4], 0
mov dword [ebp - 0x4c], eax
mov dword [eax], ecx
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0xf
mov byte [ebp - 0x48], 0
mov edx, dword [ebp - 0x50]
mov dword [ebp - 4], 4
cmp dx, 0xa
jae 0x1003b235
cmp esi, 0xa
jae 0x1003b235
movzx eax, dx
xor ecx, ecx
push esi
push eax
mov dl, 0x79
mov dword [ebp - 0x98], 0x1d5c4979
mov dword [ebp - 0x94], 0x1d5c4943
mov byte [ebp - 0x90], 0
nop word [eax + eax]
xor byte [ebp + ecx - 0x97], dl
inc ecx
cmp ecx, 7
jae 0x1003b1a5
mov dl, byte [ebp - 0x98]
jmp 0x1003b190
sub esp, 0x1c
mov byte [ebp - 0x90], 0
mov edx, esp
lea ecx, [ebp - 0x97]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003b1d5
sub ecx, esi
lea eax, [ebp - 0x97]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x170]
push eax
call fcn.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x4c]
cmp eax, esi
je 0x1003b215
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x4c]
call fcn.100082f0
lea ecx, [ebp - 0x170]
call fcn.10002f50
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x170], 0
jmp 0x1003b448
mov eax, esi
movzx ecx, dx
push eax
push ecx
xor ecx, ecx
cmp dx, 0xa
jae 0x1003b2ee
mov dl, 0x6c
mov dword [ebp - 0x78], 0x8495c6c
mov dword [ebp - 0x74], 0x84956
xor byte [ebp + ecx - 0x77], dl
inc ecx
cmp ecx, 6
jae 0x1003b267
mov dl, byte [ebp - 0x78]
jmp 0x1003b258
sub esp, 0x1c
mov byte [ebp - 0x71], 0
mov edx, esp
lea ecx, [ebp - 0x77]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003b291
sub ecx, esi
lea eax, [ebp - 0x77]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x18c]
push eax
call fcn.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x4c]
cmp eax, esi
je 0x1003b2ce
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x4c]
call fcn.100082f0
lea ecx, [ebp - 0x18c]
call fcn.10002f50
mov eax, dword [ebp - 0x18c]
mov dword [ebp - 0x18c], 0
jmp 0x1003b448
cmp esi, 0xa
jae 0x1003b39d
mov dl, 0x3e
mov dword [ebp - 0x80], 0x45a1b3e
mov dword [ebp - 0x7c], 0x5a1b0e
xor byte [ebp + ecx - 0x7f], dl
inc ecx
cmp ecx, 6
jae 0x1003b316
mov dl, byte [ebp - 0x80]
jmp 0x1003b307
sub esp, 0x1c
mov byte [ebp - 0x79], 0
mov edx, esp
lea ecx, [ebp - 0x7f]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003b340
sub ecx, esi
lea eax, [ebp - 0x7f]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x1a8]
push eax
call fcn.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x4c]
cmp eax, esi
je 0x1003b37d
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x4c]
call fcn.100082f0
lea ecx, [ebp - 0x1a8]
call fcn.10002f50
mov eax, dword [ebp - 0x1a8]
mov dword [ebp - 0x1a8], 0
jmp 0x1003b448
mov dl, 0x6c
mov dword [ebp - 0x60], 0x5608496c
mov word [ebp - 0x5c], 0x849
mov byte [ebp - 0x5a], 0
xor byte [ebp + ecx - 0x5f], dl
inc ecx
cmp ecx, 5
jae 0x1003b3bf
mov dl, byte [ebp - 0x60]
jmp 0x1003b3b0
sub esp, 0x1c
mov byte [ebp - 0x5a], 0
mov edx, esp
lea ecx, [ebp - 0x5f]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003b3f0
sub ecx, esi
lea eax, [ebp - 0x5f]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x1c4]
push eax
call fcn.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x4c]
cmp eax, esi
je 0x1003b42d
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x4c]
call fcn.100082f0
lea ecx, [ebp - 0x1c4]
call fcn.10002f50
mov eax, dword [ebp - 0x1c4]
mov dword [ebp - 0x1c4], 0
push 8
push eax
call fcn.100891b0
movaps xmm0, xmmword [0x100e9b00]
lea eax, [ebp - 0x48]
add esp, 8
mov dword [ebp - 0xa0], 0x37611f64
cmp dword [ebp - 0x34], 0xf
movups xmmword [ebp - 0xb0], xmm0
cmova eax, dword [ebp - 0x48]
xor ecx, ecx
push eax
mov word [ebp - 0x9c], 0x19
mov al, byte [ebp + ecx - 0xaf]
xor al, byte [ebp - 0xb0]
mov byte [ebp + ecx - 0xaf], al
inc ecx
cmp ecx, 0x14
jb 0x1003b482
sub esp, 0x1c
mov byte [ebp - 0x9b], 0
mov edx, esp
lea ecx, [ebp - 0xaf]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003b4d0
sub ecx, esi
lea eax, [ebp - 0xaf]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x1e0]
push eax
call fcn.1000d650
add esp, 0x24
mov byte [ebp - 4], 5
mov edx, eax
mov ecx, dword [edi + 0xc]
call fcn.1001e150
lea ecx, [ebp - 0x1e0]
call fcn.10002f50
mov eax, dword [ebp - 0x1e0]
push 8
push eax
mov dword [ebp - 0x1e0], 0
call fcn.100891b0
add esp, 8
lea ecx, [ebp - 0x4c]
call fcn.10002f50
mov eax, dword [ebp - 0x4c]
push 8
push eax
mov dword [ebp - 0x4c], 0
call fcn.100891b0
add esp, 8
cmp word [edi + 0x28], 0
jg 0x1003b559
xor eax, eax
mov byte [edi + 0x21], 0
mov word [edi + 0x28], ax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10089100
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret