Function at 0x10139cf0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x1bc
mov eax, dword [0x102070c0]
xor eax, esp
mov dword [esp + 0x1b4], eax
mov eax, dword [0x10224ca0]
push ebx
push ebp
push esi
cmp byte [eax + 0x35a7], 0
push edi
mov edi, ecx
je 0x1013a267
mov eax, dword [0x10226524]
mov ecx, dword [eax]
test ecx, ecx
je 0x1013a267
mov eax, dword [ecx]
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x1013a267
mov eax, dword [0x10224ca8]
mov esi, dword [eax + 0x10]
mov eax, dword [0x10226524]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [esi]
mov edx, dword [ecx + 0x20]
lea ecx, [esp + 0x68]
push ecx
push eax
mov ecx, esi
call edx
movq xmm0, qword [0x101f0744]
test al, al
mov al, byte [0x101f074c]
movq qword [esp + 0x14], xmm0
mov byte [esp + 0x1c], al
je 0x10139d8a
mov esi, dword [esp + 0xf8]
jmp 0x10139d8d
or esi, 0xffffffff
xor ebx, ebx
nop
mov eax, 0x2f684bdb
mov cl, bl
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x32
xor byte [esp + ebx + 0x14], cl
inc ebx
cmp ebx, 9
jl 0x10139d90
mov eax, dword [edi]
lea ecx, [esp + 0x14]
push 0
push ecx
mov ecx, edi
mov eax, dword [eax + 0x18]
call eax
cmp eax, esi
jne 0x1013a267
mov eax, dword [0x101f04fc]
xor ebx, ebx
mov dword [esp + 0x14], eax
mov ax, word [0x101f0500]
mov word [esp + 0x18], ax
mov al, byte [0x101f0502]
mov byte [esp + 0x1a], al
mov eax, 0x2f684bdb
mov cl, bl
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x32
xor byte [esp + ebx + 0x14], cl
inc ebx
cmp ebx, 7
jl 0x10139df0
mov eax, dword [edi]
lea ecx, [esp + 0x14]
push 0
push ecx
mov ecx, edi
mov eax, dword [eax + 0x18]
call eax
cmp eax, esi
je 0x1013a267
push 0
call fcn.101a7cae
add esp, 4
push eax
call fcn.101a7c9c
add esp, 4
call fcn.101a7c7b
cdq
mov ecx, 9
idiv ecx
xorps xmm0, xmm0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0xf
movups xmmword [esp + 0x38], xmm0
mov byte [esp + 0x38], 0
cmp edx, 8
ja case.default.0x10139e77
jmp dword [edx*4 + 0x1013a288]
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10139e90
jmp 0x1013a027
mov ax, word [0x101f0d78]
mov word [esp + 0x14], ax
test ah, ah
je 0x10139ed9
xor ebx, ebx
nop dword [eax]
mov eax, 0x2f684bdb
mov cl, bl
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x32
xor byte [esp + ebx + 0x14], cl
inc ebx
cmp ebx, 2
jl 0x10139eb0
lea ecx, [esp + 0x14]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10139ee0
lea eax, [esp + 0x14]
jmp 0x1013a02b
mov ax, word [0x101f0988]
mov word [esp + 0x14], ax
test ah, ah
je 0x10139f2a
xor ebx, ebx
mov eax, 0x2f684bdb
mov cl, bl
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x32
xor byte [esp + ebx + 0x14], cl
inc ebx
cmp ebx, 2
jl 0x10139f01
lea ecx, [esp + 0x14]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10139f31
lea eax, [esp + 0x14]
jmp 0x1013a02b
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10139f50
jmp 0x1013a027
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10139f70
jmp 0x1013a027
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10139f90
jmp 0x1013a027
mov eax, dword [str.EJP_n6]
xor ebx, ebx
mov dword [esp + 0x14], eax
mov al, byte [0x101f0920]
mov byte [esp + 0x18], al
mov eax, 0x2f684bdb
mov cl, bl
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x32
xor byte [esp + ebx + 0x14], cl
inc ebx
cmp ebx, 5
jl 0x10139fb0
lea ecx, [esp + 0x14]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10139fe0
lea eax, [esp + 0x14]
jmp 0x1013a02b
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1013a000
jmp 0x1013a027
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1013a020
lea eax, [esp + 0x14]
sub ecx, edx
push ecx
push eax
lea ecx, [esp + 0x40]
call fcn.10022cd0
mov eax, dword [0x101f0c84]
mov dword [esp + 0x14], eax
mov ax, word [0x101f0c88]
mov word [esp + 0x18], ax
test ah, ah
je 0x1013a07b
xor ebx, ebx
mov eax, 0x2f684bdb
mov cl, bl
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 5
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x32
xor byte [esp + ebx + 0x14], cl
inc ebx
cmp ebx, 6
jl 0x1013a052
xorps xmm0, xmm0
mov dword [esp + 0x60], 0
lea ecx, [esp + 0x14]
mov dword [esp + 0x64], 0
movups xmmword [esp + 0x50], xmm0
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1013a0a0
sub ecx, edx
lea eax, [esp + 0x14]
push ecx
push eax
lea ecx, [esp + 0x58]
call fcn.10027940
cmp dword [esp + 0x64], 0xf
lea edx, [esp + 0x50]
xorps xmm0, xmm0
mov dword [esp + 0x30], 0
cmova edx, dword [esp + 0x50]
mov ecx, edx
mov dword [esp + 0x34], 0
movups xmmword [esp + 0x20], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1013a0e3
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0x28]
call fcn.10027940
mov ecx, dword [esp + 0x64]
cmp ecx, 0xf
jbe 0x1013a12d
mov edx, dword [esp + 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1013a123
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1013a280
push ecx
push edx
call fcn.1019a58d
add esp, 8
cmp dword [esp + 0x4c], 0xf
lea ecx, [esp + 0x38]
mov edx, dword [esp + 0x34]
mov eax, edx
mov edi, dword [esp + 0x38]
cmova ecx, edi
mov ebp, dword [esp + 0x30]
sub eax, ebp
mov ebx, dword [esp + 0x48]
cmp ebx, eax
ja 0x1013a17b
cmp edx, 0xf
lea esi, [esp + 0x20]
lea eax, [ebx + ebp]
cmova esi, dword [esp + 0x20]
push ebx
mov dword [esp + 0x34], eax
push ecx
lea eax, [esi + ebp]
push eax
call fcn.1019bac0
lea eax, [ebx + esi]
add esp, 0xc
mov byte [eax + ebp], 0
jmp 0x1013a193
mov ebx, dword [esp + 0x48]
push ebx
push ecx
push dword [esp + 0x1c]
lea ecx, [esp + 0x2c]
push ebx
call fcn.10028550
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
cmp ecx, edx
jae 0x1013a1ba
lea eax, [ecx + 1]
cmp edx, 0xf
mov dword [esp + 0x30], eax
lea eax, [esp + 0x20]
cmova eax, dword [esp + 0x20]
mov word [eax + ecx], 0x22
jmp 0x1013a1cb
push 0x22
push dword [esp + 0x18]
lea ecx, [esp + 0x28]
push 1
call fcn.10028420
mov eax, dword [0x10224ca8]
lea edx, [esp + 0x20]
cmp dword [esp + 0x34], 0xf
push 0
cmova edx, dword [esp + 0x24]
mov ecx, dword [eax + 0x10]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x1c8]
call eax
mov ecx, dword [esp + 0x34]
cmp ecx, 0xf
jbe 0x1013a224
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1013a21a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1013a280
push ecx
push edx
call fcn.1019a58d
add esp, 8
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0xf
mov byte [esp + 0x20], 0
cmp ecx, 0xf
jbe 0x1013a267
inc ecx
mov eax, edi
cmp ecx, 0x1000
jb 0x1013a25d
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1013a280
push ecx
push edi
call fcn.1019a58d
add esp, 8
mov ecx, dword [esp + 0x1c4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1019a294
add esp, 0x1bc
ret
call fcn.1019f6c6
nop dword [eax]
sbb byte [esi - 0x6163efed], 0x13
adc al, dh
sahf
adc edx, dword [eax]
inc ecx
lahf
adc edx, dword [eax]
pushal
lahf
adc edx, dword [eax]
sbb byte [edi - 0x6063efed], 0x13
adc al, dh
lahf
adc edx, dword [eax]
adc byte [eax - 0x3333efed], ah
int3