Function at 0x12e5d10
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 0xe17092
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x3c8
push esi
push edi
mov dword [ebp - 0x9c], 0
push 0x104
lea eax, [ebp - 0x3d8]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.01387760
add esp, 0xc
lea eax, [ebp - 0x3d8]
push eax
push 0
push 0
push 0x1a
push 0
call dword [0xe1c2e0]
movaps xmm0, xmmword [0xe35e70]
xor ecx, ecx
movups xmmword [ebp - 0xe0], xmm0
mov word [ebp - 0xd0], 0xd3
mov byte [ebp - 0xce], 1
lea eax, [ecx - 0x6d]
xor byte [ebp + ecx - 0xe0], al
inc ecx
cmp ecx, 0x11
jb 0x12e5da0
xorps xmm0, xmm0
mov byte [ebp - 0xce], 0
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0x58], 0
movups xmmword [ebp - 0x68], xmm0
mov dword [ebp - 0x54], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x12e5dd5
sub ecx, edx
lea eax, [ebp - 0xe0]
push ecx
push eax
lea ecx, [ebp - 0x68]
call fcn.012ab030
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 1
push eax
lea edx, [ebp - 0x3d8]
lea ecx, [ebp - 0x15c]
call fcn.013123b0
add esp, 4
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x54]
cmp ecx, 0x10
jb 0x12e5e42
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x12e5e38
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x12e747d
push ecx
push edx
call fcn.01385783
add esp, 8
cmp dword [ebp - 0x148], 0x10
lea esi, [ebp - 0x15c]
push 0xe46240
cmovae esi, dword [ebp - 0x15c]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
call fcn.01384a84
add esp, 4
test eax, eax
jne 0x12e7482
test esi, esi
je 0x12e73d8
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x12e5e90
sub ecx, edx
je 0x12e73d8
push esi
push eax
call 0x1522ca4
mov edi, dword [0xe1c090]
cmp eax, 0xffffffff
jne 0x12e5ecb
call edi
cmp eax, 0x44
je 0x12e5ecb
cmp eax, 0x20
je 0x12e5ecb
cmp eax, 0x45
je 0x12e5ecb
cmp eax, 0x24
jne 0x12e73d8
push 0xe46240
call fcn.01384a95
add esp, 4
mov dword [ebp - 0x19], 0xf7f1e0cf
mov dword [ebp - 0x15], 0x100f9e3
xor ecx, ecx
lea eax, [ecx - 0x6d]
xor byte [ebp + ecx - 0x19], al
inc ecx
cmp ecx, 6
jb 0x12e5ee8
lea ecx, [ebp - 0x19]
mov byte [ebp - 0x12], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x12e5f00
sub ecx, edx
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x14c]
sub eax, edx
cmp eax, ecx
jb 0x12e7488
cmp dword [ebp - 0x148], 0x10
lea eax, [ebp - 0x15c]
push ecx
cmovae eax, dword [ebp - 0x15c]
lea ecx, [ebp - 0x19]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0xb4]
call fcn.01315f90
mov byte [ebp - 4], 4
lea esi, [ebp - 0xb4]
cmp dword [ebp - 0xa0], 0x10
push 0xe46240
cmovae esi, dword [ebp - 0xb4]
call fcn.01384a84
add esp, 4
test eax, eax
jne 0x12e748d
test esi, esi
je 0x12e738f
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x12e5f82
sub ecx, edx
je 0x12e738f
push esi
push eax
call 0x14ba32f
cmp eax, 0xffffffff
jne 0x12e5fb7
call edi
cmp eax, 0x44
je 0x12e5fb7
cmp eax, 0x20
je 0x12e5fb7
cmp eax, 0x45
je 0x12e5fb7
cmp eax, 0x24
jne 0x12e738f
push 0xe46240
call fcn.01384a95
add esp, 4
mov byte [ebp - 0x11], 0
mov dword [ebp - 0x24], 0x100f6e1
xor ecx, ecx
lea eax, [ecx - 0x6d]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 2
jb 0x12e5fd1
mov byte [ebp - 0x21], 0
xor ecx, ecx
mov dword [ebp - 0x1d], 0xeff0ffcf
mov dword [ebp - 0x19], 0xeef8fcc8
mov dword [ebp - 0x15], 0x100effa
nop dword [eax]
lea eax, [ecx - 0x6d]
xor byte [ebp + ecx - 0x1d], al
inc ecx
cmp ecx, 0xa
jb 0x12e6000
lea ecx, [ebp - 0x1d]
mov byte [ebp - 0x12], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x12e6017
sub ecx, edx
mov eax, 0x7fffffff
mov edx, dword [ebp - 0xa4]
sub eax, edx
cmp eax, ecx
jb 0x12e7493
cmp dword [ebp - 0xa0], 0x10
lea eax, [ebp - 0xb4]
push ecx
cmovae eax, dword [ebp - 0xb4]
lea ecx, [ebp - 0x1d]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x68]
call fcn.01315f90
cmp dword [ebp - 0x54], 0x10
lea ecx, [ebp - 0x24]
lea eax, [ebp - 0x68]
cmovae eax, dword [ebp - 0x68]
push ecx
push eax
call fcn.0138b5d0
mov ecx, dword [ebp - 0x54]
add esp, 8
mov esi, eax
cmp ecx, 0x10
jb 0x12e60aa
mov edx, dword [ebp - 0x68]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x12e60a0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x12e7498
push ecx
push edx
call fcn.01385783
add esp, 8
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], 0
test esi, esi
je 0x12e60cd
push esi
call fcn.0138ee58
add esp, 4
mov byte [ebp - 0x11], 1
xor esi, esi
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], esi
mov dword [ebp - 0xd4], esi
mov byte [ebp - 4], 5
xor ecx, ecx
mov dword [ebp - 0x44], 0xbcbbbecf
mov word [ebp - 0x40], 0x100
lea eax, [ecx - 0x6d]
xor byte [ebp + ecx - 0x44], al
inc ecx
cmp ecx, 4
jb 0x12e60f8
lea ecx, [ebp - 0x44]
mov byte [ebp - 0x3f], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x12e6110
sub ecx, edx
mov eax, 0x7fffffff
mov edx, dword [ebp - 0xa4]
sub eax, edx
cmp eax, ecx
jb 0x12e749d
cmp dword [ebp - 0xa0], 0x10
lea eax, [ebp - 0xb4]
push ecx
cmovae eax, dword [ebp - 0xb4]
lea ecx, [ebp - 0x44]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x18c]
call fcn.01315f90
mov edi, 0xc4
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x2d0]
cmp dword [ebp - 0x178], 0x10
lea eax, [ebp - 0x18c]
push ecx
cmovae eax, dword [ebp - 0x18c]
push eax
call 0x14e3848
push 0xe46240
call fcn.01384a95
add esp, 4
mov ecx, dword [ebp - 0xa0]
cmp ecx, 0x10
jb 0x12e73e5
mov edx, dword [ebp - 0xb4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x12e73cc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x12e74ca
push ecx
push edx
call fcn.01385783
add esp, 8
jmp 0x12e73e5
push 0xe46240
call fcn.01384a95
add esp, 4
mov ecx, dword [ebp - 0x148]
cmp ecx, 0x10
jb 0x12e741f
mov edx, dword [ebp - 0x15c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x12e7415
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x12e74cf
push ecx
push edx
call fcn.01385783
add esp, 8
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x148], 0xf
mov byte [ebp - 0x15c], 0
cmp ecx, 0x10
jb 0x12e746a
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x12e7460
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x12e74cf
push ecx
push edx
call fcn.01385783
add esp, 8
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.0138aa20
push eax
call fcn.0138472b
call fcn.012aa840
push eax
call fcn.0138472b
call fcn.012aa840
call fcn.0138aa20
call fcn.012aa840
call fcn.012aa840
call fcn.012aa840
call fcn.012aa840
call fcn.012aa840
call fcn.0138aa20
call fcn.0138aa20
call fcn.0138aa20
call fcn.0138aa20
call fcn.0138aa20
call fcn.0138aa20
int3