Function at 0x10018090
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1a8
mov eax, dword [0x10035040]
xor eax, esp
mov dword [esp + 0x1a4], eax
movaps xmm0, xmmword [str.yEL_KXOvzEFCI]
xor ecx, ecx
push esi
push edi
movups xmmword [esp + 0x30], xmm0
nop word [eax + eax]
mov al, byte [esp + 0x30]
xor byte [esp + ecx + 0x31], al
inc ecx
cmp ecx, 0xe
jb 0x100180c0
xorps xmm0, xmm0
mov byte [esp + 0x3f], 0
lea ecx, [esp + 0x31]
movaps xmmword [esp + 0xb0], xmm0
mov dword [esp + 0xc0], 0
lea edx, [ecx + 1]
mov dword [esp + 0xc4], 0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10018100
sub ecx, edx
lea eax, [esp + 0x31]
push ecx
push eax
lea ecx, [esp + 0xb8]
call fcn.1000ce50
mov al, 0x59
mov byte [esp + 0x30], 0x30
mov dh, al
mov byte [esp + 0x17], 0x53
xor al, byte [esp + 0x30]
mov cl, 0x55
xor cl, byte [esp + 0x30]
mov dl, 0x43
mov byte [esp + 0x31], al
mov ch, 0x7d
mov al, byte [esp + 0x17]
mov ah, 0x6c
mov byte [esp + 0x32], cl
xorps xmm0, xmm0
mov cl, byte [esp + 0x30]
xor al, cl
mov byte [esp + 0x16], 0x42
mov byte [esp + 0x37], al
xor ch, cl
mov al, byte [esp + 0x16]
xor dh, cl
xor al, cl
mov byte [esp + 0x15], 0x5f
mov byte [esp + 0x38], al
xor ah, cl
mov al, byte [esp + 0x15]
xor al, cl
mov byte [esp + 0x14], dl
xor dl, cl
mov byte [esp + 0x39], al
mov al, byte [esp + 0x14]
xor al, cl
mov byte [esp + 0x35], ch
lea ecx, [esp + 0x31]
mov byte [esp + 0x3b], 0
mov byte [esp + 0x33], dl
mov byte [esp + 0x36], dh
lea edx, [ecx + 1]
mov byte [esp + 0x34], ah
mov byte [esp + 0x3a], al
mov byte [esp + 0x3b], 0
movaps xmmword [esp + 0x90], xmm0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100181c5
sub ecx, edx
lea eax, [esp + 0x31]
push ecx
push eax
lea ecx, [esp + 0x98]
call fcn.1000ce50
mov al, 0x1b
mov byte [esp + 0x30], 0x74
mov byte [esp + 0x16], al
mov cl, 0x12
xor al, byte [esp + 0x30]
xor dl, dl
xor cl, byte [esp + 0x30]
mov ch, 0x23
mov byte [esp + 0x31], al
mov dh, 0x1d
mov byte [esp + 0x32], cl
mov ah, 0x28
mov cl, byte [esp + 0x30]
xorps xmm0, xmm0
mov byte [esp + 0x14], 0x1a
xor ch, cl
mov al, byte [esp + 0x14]
xor dh, cl
xor al, cl
mov byte [esp + 0x15], 0x10
mov byte [esp + 0x37], al
xor ah, cl
mov al, byte [esp + 0x15]
xor al, cl
mov byte [esp + 0x3a], dl
xor dl, cl
mov byte [esp + 0x38], al
mov al, byte [esp + 0x16]
xor al, cl
mov byte [esp + 0x35], ch
lea ecx, [esp + 0x31]
mov byte [esp + 0x33], dl
mov byte [esp + 0x36], dh
lea edx, [ecx + 1]
mov byte [esp + 0x34], ah
mov byte [esp + 0x39], al
mov byte [esp + 0x3a], 0
movaps xmmword [esp + 0x180], xmm0
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10018280
sub ecx, edx
lea eax, [esp + 0x31]
push ecx
push eax
lea ecx, [esp + 0x188]
call fcn.1000ce50
mov byte [esp + 0x30], 0x26
mov cl, 0x55
xor cl, byte [esp + 0x30]
mov al, 0x51
xor al, byte [esp + 0x30]
mov ch, 0x43
mov byte [esp + 0x31], al
mov dl, 6
mov byte [esp + 0x14], ch
mov dh, 0x40
mov al, byte [esp + 0x14]
mov ah, 0x62
mov byte [esp + 0x32], cl
xorps xmm0, xmm0
mov cl, byte [esp + 0x30]
xor al, cl
mov byte [esp + 0x15], 0x48
xor dl, cl
mov byte [esp + 0x37], al
mov al, byte [esp + 0x15]
xor ch, cl
xor dh, cl
mov byte [esp + 0x35], ch
xor ah, cl
mov byte [esp + 0x39], 0
xor al, cl
mov byte [esp + 0x33], dl
lea ecx, [esp + 0x31]
mov byte [esp + 0x36], dh
mov byte [esp + 0x34], ah
lea edx, [ecx + 1]
mov byte [esp + 0x38], al
mov byte [esp + 0x39], 0
movaps xmmword [esp + 0x160], xmm0
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10018327
sub ecx, edx
lea eax, [esp + 0x31]
push ecx
push eax
lea ecx, [esp + 0x168]
call fcn.1000ce50
mov cl, 0x6d
mov byte [esp + 0x14], 0x5b
mov ah, 0x38
mov dword [esp + 0x20], ecx
movsx ecx, ah
mov al, 0x6c
mov byte [esp + 0x30], ah
mov dl, 0x7a
mov byte [esp + 0x15], 0x78
mov dh, 0x64
mov byte [esp + 0x37], 0
and ecx, 0x8000000f
jns 0x10018373
dec ecx
or ecx, 0xfffffff0
inc ecx
sub al, cl
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x20]
xorps xmm0, xmm0
mov byte [esp + 0x31], al
mov eax, dword [esp + 0x28]
sub cl, al
mov byte [esp + 0x32], cl
sub dl, al
mov cl, byte [esp + 0x14]
sub dh, al
sub cl, al
mov byte [esp + 0x33], dl
mov byte [esp + 0x35], cl
mov cl, byte [esp + 0x15]
sub cl, al
mov byte [esp + 0x34], dh
mov byte [esp + 0x36], cl
lea ecx, [esp + 0x31]
mov byte [esp + 0x37], 0
lea edx, [ecx + 1]
movaps xmmword [esp + 0x140], xmm0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100183d8
sub ecx, edx
lea eax, [esp + 0x31]
push ecx
push eax
lea ecx, [esp + 0x148]
call fcn.1000ce50
mov cl, 0x40
mov byte [esp + 0x2d], 0
mov byte [esp + 0x28], cl
mov al, 0x79
movsx ecx, cl
mov dl, 0x4e
mov ah, 0x65
mov dh, 0x74
and ecx, 0x8000000f
jns 0x10018416
dec ecx
or ecx, 0xfffffff0
inc ecx
sub dl, cl
mov byte [esp + 0x2d], 0
sub al, cl
mov byte [esp + 0x2a], dl
sub ah, cl
mov byte [esp + 0x29], al
sub dh, cl
mov byte [esp + 0x2b], ah
xorps xmm0, xmm0
mov byte [esp + 0x2c], dh
lea ecx, [esp + 0x29]
movaps xmmword [esp + 0x120], xmm0
mov dword [esp + 0x130], 0
lea edx, [ecx + 1]
mov dword [esp + 0x134], 0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10018460
sub ecx, edx
lea eax, [esp + 0x29]
push ecx
push eax
lea ecx, [esp + 0x128]
call fcn.1000ce50
mov edx, dword [esp + 0xc0]
mov esi, 0x7fffffff
mov edi, dword [esp + 0xa0]
mov eax, esi
sub eax, edx
cmp eax, edi
jb 0x10018be3
cmp dword [esp + 0xc4], 0xf
lea ecx, [esp + 0xb0]
push edi
cmova ecx, dword [esp + 0xb4]
lea eax, [esp + 0x94]
cmp dword [esp + 0xa8], 0xf
cmova eax, dword [esp + 0x94]
push eax
push edx
push ecx
push ecx
push dword [esp + 0x3c]
lea ecx, [esp + 0x120]
call fcn.1000d310
lea eax, [esp + 0x120]
push eax
lea eax, [esp + 0x144]
push eax
lea eax, [esp + 0x168]
push eax
lea eax, [esp + 0x18c]
push eax
lea edx, [esp + 0x118]
lea ecx, [esp + 0x40]
call fcn.1000cd60
add esp, 4
lea ecx, [esp + 0x5c]
mov edx, eax
call fcn.1000cd60
add esp, 4
lea ecx, [esp + 0x78]
mov edx, eax
call fcn.1000cd60
add esp, 4
lea ecx, [esp + 0xf4]
mov edx, eax
call fcn.1000cd60
mov ecx, dword [esp + 0x88]
add esp, 4
cmp ecx, 0xf
jbe 0x10018576
mov edx, dword [esp + 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001856c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018be8
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0xf
mov byte [esp + 0x70], 0
cmp ecx, 0xf
jbe 0x100185c7
mov edx, dword [esp + 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100185bd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018be8
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0xf
mov byte [esp + 0x50], 0
cmp ecx, 0xf
jbe 0x10018612
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018608
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018be8
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0xf
mov byte [esp + 0x30], 0
cmp ecx, 0xf
jbe 0x10018663
mov edx, dword [esp + 0x108]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018659
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018be8
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ch, 0xd
mov byte [esp + 0x2d], 0
mov cl, 0x7d
mov byte [esp + 0x28], ch
mov dl, 0x74
mov byte [esp + 0x2d], 0
xor cl, ch
mov dword [esp + 0x80], 0
xor dl, ch
mov byte [esp + 0x2a], cl
mov al, 0x5e
mov byte [esp + 0x2b], dl
xor al, ch
mov dword [esp + 0x84], 0
mov ah, 0x63
mov byte [esp + 0x29], al
xor ah, ch
xorps xmm0, xmm0
lea ecx, [esp + 0x29]
mov byte [esp + 0x2c], ah
movaps xmmword [esp + 0x70], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100186b8
sub ecx, edx
lea eax, [esp + 0x29]
push ecx
push eax
lea ecx, [esp + 0x78]
call fcn.1000ce50
mov al, 0x40
mov byte [esp + 0x30], 0x25
mov ah, al
mov byte [esp + 0x14], 0x57
xor al, byte [esp + 0x30]
mov cl, 0x51
mov byte [esp + 0x31], al
mov dl, 0x77
mov al, byte [esp + 0x30]
mov ch, 0x55
mov dh, 0x4a
mov byte [esp + 0x38], 0
xor cl, al
mov byte [esp + 0x38], 0
xor dl, al
mov byte [esp + 0x32], cl
xor ch, al
mov byte [esp + 0x33], dl
xor dh, al
mov byte [esp + 0x35], ch
xor ah, al
mov byte [esp + 0x36], dh
mov al, byte [esp + 0x14]
lea ecx, [esp + 0x31]
xor al, byte [esp + 0x30]
lea edx, [ecx + 1]
xorps xmm0, xmm0
mov byte [esp + 0x34], ah
mov byte [esp + 0x37], al
movaps xmmword [esp + 0x50], xmm0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10018745
sub ecx, edx
lea eax, [esp + 0x31]
push ecx
push eax
lea ecx, [esp + 0x58]
call fcn.1000ce50
mov ch, 9
mov byte [esp + 0x2d], 0
mov cl, 0x60
mov byte [esp + 0x28], ch
mov dl, 0x67
mov byte [esp + 0x2d], 0
xor cl, ch
mov dword [esp + 0x40], 0
xor dl, ch
mov byte [esp + 0x2a], cl
mov al, 0x7d
mov byte [esp + 0x2b], dl
xor al, ch
mov dword [esp + 0x44], 0
mov ah, 0x6e
mov byte [esp + 0x29], al
xor ah, ch
xorps xmm0, xmm0
lea ecx, [esp + 0x29]
mov byte [esp + 0x2c], ah
movaps xmmword [esp + 0x30], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100187b0
sub ecx, edx
lea eax, [esp + 0x29]
push ecx
push eax
lea ecx, [esp + 0x38]
call fcn.1000ce50
mov edx, dword [esp + 0x80]
sub esi, edx
mov edi, dword [esp + 0x60]
cmp esi, edi
jb 0x10018bed
cmp dword [esp + 0x84], 0xf
lea ecx, [esp + 0x70]
push edi
cmova ecx, dword [esp + 0x74]
lea eax, [esp + 0x54]
cmp dword [esp + 0x68], 0xf
cmova eax, dword [esp + 0x54]
push eax
push edx
push ecx
push ecx
push dword [esp + 0x3c]
lea ecx, [esp + 0x120]
call fcn.1000d310
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x10c]
lea ecx, [esp + 0xdc]
call fcn.1000cd60
mov ecx, dword [esp + 0x120]
add esp, 4
cmp ecx, 0xf
jbe 0x10018868
mov edx, dword [esp + 0x108]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001885e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bf2
push ecx
push edx
call fcn.1001c78b
add esp, 8
cmp dword [esp + 0xec], 0xf
lea eax, [esp + 0x18]
push eax
lea esi, [esp + 0xdc]
mov dword [esp + 0x20], 0
cmova esi, dword [esp + 0xdc]
lea edi, [esp + 0xf4]
cmp dword [esp + 0x108], 0xf
mov edx, 0x3ec5852c
push 0xf003f
cmova edi, dword [esp + 0xf8]
mov ecx, 4
push 0
push edi
push 0x80000002
call fcn.1000df10
call eax
mov ecx, 4
test eax, eax
je 0x100188fa
lea eax, [esp + 0x24]
mov edx, 0xab2a9c67
push eax
lea eax, [esp + 0x1c]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
push edi
push 0x80000002
call fcn.1000df10
call eax
test eax, eax
jne 0x10018916
lea ecx, [eax + 4]
push 4
lea eax, [esp + 0x20]
mov edx, 0xb0f25466
push eax
push 4
push 0
push esi
push dword [esp + 0x2c]
call fcn.1000df10
call eax
mov ecx, dword [esp + 0xec]
cmp ecx, 0xf
jbe 0x10018952
mov edx, dword [esp + 0xd8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018948
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bf7
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0xf
mov byte [esp + 0xd8], 0
cmp ecx, 0xf
jbe 0x100189a6
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001899c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bf7
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ecx, dword [esp + 0x64]
cmp ecx, 0xf
jbe 0x100189dc
mov edx, dword [esp + 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100189d2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bf7
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ecx, dword [esp + 0x84]
cmp ecx, 0xf
jbe 0x10018a15
mov edx, dword [esp + 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018a0b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bf7
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ecx, dword [esp + 0x104]
cmp ecx, 0xf
jbe 0x10018a51
mov edx, dword [esp + 0xf0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018a47
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bf7
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ecx, dword [esp + 0x134]
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0xf
mov byte [esp + 0xf0], 0
cmp ecx, 0xf
jbe 0x10018aab
mov edx, dword [esp + 0x120]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018aa1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bf7
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ecx, dword [esp + 0x154]
cmp ecx, 0xf
jbe 0x10018ae7
mov edx, dword [esp + 0x140]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018add
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bf7
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ecx, dword [esp + 0x174]
cmp ecx, 0xf
jbe 0x10018b23
mov edx, dword [esp + 0x160]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018b19
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bf7
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ecx, dword [esp + 0x194]
cmp ecx, 0xf
jbe 0x10018b5f
mov edx, dword [esp + 0x180]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018b55
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bf7
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ecx, dword [esp + 0xa4]
cmp ecx, 0xf
jbe 0x10018b97
mov edx, dword [esp + 0x90]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018b8d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bf7
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ecx, dword [esp + 0xc4]
cmp ecx, 0xf
jbe 0x10018bcf
mov edx, dword [esp + 0xb0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018bc5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10018bf7
push ecx
push edx
call fcn.1001c78b
add esp, 8
mov ecx, dword [esp + 0x1ac]
pop edi
pop esi
xor ecx, esp
call fcn.1001c433
mov esp, ebp
pop ebp
ret
call fcn.100012d0
call fcn.10020021
call fcn.100012d0
call fcn.10020021
call fcn.10020021
int3