Function at 0x1000aaf0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x184
mov eax, dword [0x1003a008]
xor eax, ebp
mov dword [ebp - 4], eax
xorps xmm0, xmm0
mov dword [ebp - 0x184], ecx
movups xmmword [ebp - 0xe4], xmm0
mov dword [ebp - 0x10c], 0xe0e0ead5
xor ecx, ecx
movups xmmword [ebp - 0xd4], xmm0
mov word [ebp - 0x108], 0xefc5
mov byte [ebp - 0x106], 0
nop word [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x10c], al
inc ecx
cmp ecx, 6
jb 0x1000ab40
xor eax, eax
mov byte [ebp - 0x106], 0
cmp byte [ebp - 0xe4], al
je 0x1000ab6c
inc eax
cmp byte [ebp + eax - 0xe4], 0
jne 0x1000ab61
push ebx
push esi
push edi
lea edi, [ebp - 0xe4]
mov dword [ebp - 0x178], 0
add edi, eax
mov dword [ebp - 0x138], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x180], edi
lea esi, [ebp - 0x10c]
mov dword [ebp - 0x134], 0xb9bbbdb7
movups xmmword [ebp - 0x24], xmm0
mov byte [ebp - 0x130], 0
xor ecx, ecx
movups xmmword [ebp - 0x14], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x138], al
inc ecx
cmp ecx, 8
jb 0x1000abb5
mov al, byte [ebp - 0x138]
mov byte [ebp - 0x130], 0
mov byte [ebp - 0x24], al
test al, al
je 0x1000abf2
xor ecx, ecx
nop dword [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x138]
mov byte [ebp + ecx - 0x24], al
test al, al
jne 0x1000abe0
movsx ebx, byte [ebp - 0x10c]
mov al, bl
add al, al
lea ecx, [eax + ebx]
add cl, byte [ebp - 0x24]
inc cl
mov byte [ebp - 0x24], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x24]
cdq
idiv ecx
movzx eax, byte [ebp - 0x23]
or edx, ebx
add al, dl
mov byte [ebp - 0x23], al
movzx eax, byte [ebp - 0x23]
mov cl, byte [ebp - 0x24]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x21]
mov byte [ebp - 0x21], cl
movsx ecx, byte [ebp - 0x21]
movzx eax, byte [ebp - 0x20]
sar ecx, 6
add al, cl
xor edi, edi
mov byte [ebp - 0x20], al
mov eax, 3
nop dword [eax]
movsx edx, byte [ebp + eax - 0x24]
movsx ecx, byte [ebp + eax - 0x25]
add edx, edx
add ecx, edx
inc eax
lea edi, [edi + ecx*2]
cmp eax, 0x11
jl 0x1000ac50
mov ecx, dword [ebp - 0x178]
mov eax, edi
cdq
mov edi, dword [ebp - 0x180]
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x1000accf
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x178], eax
cmp dword [ebp - 0x178], 0xe
jle 0x1000aca2
mov dword [ebp - 0x178], 1
mov al, byte [ebp - 0x10c]
lea ecx, [ebp - 0x10c]
mov byte [edi], al
test al, al
je 0x1000acf0
mov eax, ecx
sub edi, eax
nop dword [eax + eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edi + ecx], al
test al, al
jne 0x1000acc0
jmp 0x1000acf0
mov al, byte [ebp - 0x10c]
mov byte [edi], al
test al, al
je 0x1000acf0
lea eax, [ebp - 0x10c]
sub edi, eax
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [edi + esi], al
test al, al
jne 0x1000ace3
mov dword [ebp - 0x114], 0xead0f1e3
xor ecx, ecx
mov word [ebp - 0x110], 0xf2cb
mov byte [ebp - 0x10e], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x114], al
inc ecx
cmp ecx, 6
jb 0x1000ad10
xor eax, eax
mov byte [ebp - 0x10e], 0
cmp byte [ebp - 0xe4], al
je 0x1000ad3c
inc eax
cmp byte [ebp + eax - 0xe4], 0
jne 0x1000ad31
lea edi, [ebp - 0xe4]
mov dword [ebp - 0x178], 0
add edi, eax
mov dword [ebp - 0x144], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x180], edi
lea esi, [ebp - 0x114]
mov dword [ebp - 0x140], 0xb9bbbdb7
movups xmmword [ebp - 0x44], xmm0
mov byte [ebp - 0x13c], 0
xor ecx, ecx
movups xmmword [ebp - 0x34], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x144], al
inc ecx
cmp ecx, 8
jb 0x1000ad82
mov al, byte [ebp - 0x144]
mov byte [ebp - 0x13c], 0
mov byte [ebp - 0x44], al
test al, al
je 0x1000adc2
xor ecx, ecx
nop dword [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x144]
mov byte [ebp + ecx - 0x44], al
test al, al
jne 0x1000adb0
movsx ebx, byte [ebp - 0x114]
mov al, bl
add al, al
lea ecx, [eax + ebx]
add cl, byte [ebp - 0x44]
inc cl
mov byte [ebp - 0x44], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x44]
cdq
idiv ecx
movzx eax, byte [ebp - 0x43]
or edx, ebx
add al, dl
mov byte [ebp - 0x43], al
movzx eax, byte [ebp - 0x43]
mov cl, byte [ebp - 0x44]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x41]
mov byte [ebp - 0x41], cl
movsx ecx, byte [ebp - 0x41]
movzx eax, byte [ebp - 0x40]
sar ecx, 6
add al, cl
xor edi, edi
mov byte [ebp - 0x40], al
mov eax, 3
nop dword [eax]
movsx edx, byte [ebp + eax - 0x44]
movsx ecx, byte [ebp + eax - 0x45]
add edx, edx
add ecx, edx
inc eax
lea edi, [edi + ecx*2]
cmp eax, 0x11
jl 0x1000ae20
mov ecx, dword [ebp - 0x178]
mov eax, edi
cdq
mov edi, dword [ebp - 0x180]
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x1000ae9f
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x178], eax
cmp dword [ebp - 0x178], 0xe
jle 0x1000ae72
mov dword [ebp - 0x178], 1
mov al, byte [ebp - 0x114]
lea ecx, [ebp - 0x114]
mov byte [edi], al
test al, al
je 0x1000aec0
mov eax, ecx
sub edi, eax
nop dword [eax + eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edi + ecx], al
test al, al
jne 0x1000ae90
jmp 0x1000aec0
mov al, byte [ebp - 0x114]
mov byte [edi], al
test al, al
je 0x1000aec0
lea eax, [ebp - 0x114]
sub edi, eax
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [edi + esi], al
test al, al
jne 0x1000aeb3
mov dword [ebp - 0x11c], 0xc7edf7ee
xor ecx, ecx
mov word [ebp - 0x118], 0xf3ff
mov byte [ebp - 0x116], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x11c], al
inc ecx
cmp ecx, 6
jb 0x1000aee0
xor eax, eax
mov byte [ebp - 0x116], 0
cmp byte [ebp - 0xe4], al
je 0x1000af0c
inc eax
cmp byte [ebp + eax - 0xe4], 0
jne 0x1000af01
lea edi, [ebp - 0xe4]
mov dword [ebp - 0x178], 0
add edi, eax
mov dword [ebp - 0x150], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x180], edi
lea esi, [ebp - 0x11c]
mov dword [ebp - 0x14c], 0xb9bbbdb7
movups xmmword [ebp - 0x64], xmm0
mov byte [ebp - 0x148], 0
xor ecx, ecx
movups xmmword [ebp - 0x54], xmm0
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x150], al
inc ecx
cmp ecx, 8
jb 0x1000af52
mov al, byte [ebp - 0x150]
mov byte [ebp - 0x148], 0
mov byte [ebp - 0x64], al
test al, al
je 0x1000af92
xor ecx, ecx
nop dword [eax + eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x150]
mov byte [ebp + ecx - 0x64], al
test al, al
jne 0x1000af80
movsx ebx, byte [ebp - 0x11c]
mov al, bl
add al, al
lea ecx, [eax + ebx]
add cl, byte [ebp - 0x64]
inc cl
mov byte [ebp - 0x64], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x64]
cdq
idiv ecx
movzx eax, byte [ebp - 0x63]
or edx, ebx
add al, dl
mov byte [ebp - 0x63], al
movzx eax, byte [ebp - 0x63]
mov cl, byte [ebp - 0x64]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x61]
mov byte [ebp - 0x61], cl
movsx ecx, byte [ebp - 0x61]
movzx eax, byte [ebp - 0x60]
sar ecx, 6
add al, cl
xor edi, edi
mov byte [ebp - 0x60], al
mov eax, 3
nop dword [eax]
movsx edx, byte [ebp + eax - 0x64]
movsx ecx, byte [ebp + eax - 0x65]
add edx, edx
add ecx, edx
inc eax
lea edi, [edi + ecx*2]
cmp eax, 0x11
jl 0x1000aff0
mov ecx, dword [ebp - 0x178]
mov eax, edi
cdq
mov edi, dword [ebp - 0x180]
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x1000b06f
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x178], eax
cmp dword [ebp - 0x178], 0xe
jle 0x1000b042
mov dword [ebp - 0x178], 1
mov al, byte [ebp - 0x11c]
lea ecx, [ebp - 0x11c]
mov byte [edi], al
test al, al
je 0x1000b090
mov eax, ecx
sub edi, eax
nop dword [eax + eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edi + ecx], al
test al, al
jne 0x1000b060
jmp 0x1000b090
mov al, byte [ebp - 0x11c]
mov byte [edi], al
test al, al
je 0x1000b090
lea eax, [ebp - 0x11c]
sub edi, eax
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [edi + esi], al
test al, al
jne 0x1000b083
mov dl, 0xe7
mov byte [ebp - 0x17b], 0
xor dl, 0x82
mov byte [ebp - 0x17b], 0
xor eax, eax
mov byte [ebp - 0x17c], dl
cmp byte [ebp - 0xe4], al
je 0x1000b0be
inc eax
cmp byte [ebp + eax - 0xe4], 0
jne 0x1000b0b3
lea edi, [ebp - 0xe4]
mov dword [ebp - 0x178], 0
add edi, eax
mov dword [ebp - 0x15c], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x180], edi
lea esi, [ebp - 0x17c]
mov dword [ebp - 0x158], 0xb9bbbdb7
movups xmmword [ebp - 0x84], xmm0
mov byte [ebp - 0x154], 0
xor ecx, ecx
movups xmmword [ebp - 0x74], xmm0
nop word [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x15c], al
inc ecx
cmp ecx, 8
jb 0x1000b110
mov al, byte [ebp - 0x15c]
mov byte [ebp - 0x154], 0
mov byte [ebp - 0x84], al
test al, al
je 0x1000b155
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x15c]
mov byte [ebp + ecx - 0x84], al
test al, al
jne 0x1000b140
movsx ebx, dl
mov al, bl
add al, al
lea ecx, [eax + ebx]
add cl, byte [ebp - 0x84]
inc cl
mov byte [ebp - 0x84], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0x84]
cdq
idiv ecx
movzx eax, byte [ebp - 0x83]
or edx, ebx
add al, dl
mov byte [ebp - 0x83], al
movzx eax, byte [ebp - 0x83]
mov cl, byte [ebp - 0x84]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0x81]
mov byte [ebp - 0x81], cl
movsx ecx, byte [ebp - 0x81]
movzx eax, byte [ebp - 0x80]
sar ecx, 6
add al, cl
xor edi, edi
mov byte [ebp - 0x80], al
mov eax, 3
nop word [eax + eax]
movsx edx, byte [ebp + eax - 0x84]
movsx ecx, byte [ebp + eax - 0x85]
add edx, edx
add ecx, edx
inc eax
lea edi, [edi + ecx*2]
cmp eax, 0x11
jl 0x1000b1d0
mov ecx, dword [ebp - 0x178]
mov eax, edi
cdq
mov edi, dword [ebp - 0x180]
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x1000b24f
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x178], eax
cmp dword [ebp - 0x178], 0xe
jle 0x1000b228
mov dword [ebp - 0x178], 1
mov al, byte [ebp - 0x17c]
lea ecx, [ebp - 0x17c]
mov byte [edi], al
test al, al
je 0x1000b270
mov eax, ecx
sub edi, eax
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edi + ecx], al
test al, al
jne 0x1000b240
jmp 0x1000b270
mov al, byte [ebp - 0x17c]
mov byte [edi], al
test al, al
je 0x1000b270
lea eax, [ebp - 0x17c]
sub edi, eax
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [edi + esi], al
test al, al
jne 0x1000b263
xorps xmm0, xmm0
mov dword [ebp - 0x124], 0xebf6e6e9
movups xmmword [ebp - 0x104], xmm0
mov word [ebp - 0x120], 0xebe3
xor ecx, ecx
movups xmmword [ebp - 0xf4], xmm0
mov byte [ebp - 0x11e], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x124], al
inc ecx
cmp ecx, 6
jb 0x1000b2a0
xor eax, eax
mov byte [ebp - 0x11e], 0
cmp byte [ebp - 0x104], al
je 0x1000b2cc
inc eax
cmp byte [ebp + eax - 0x104], 0
jne 0x1000b2c1
lea edi, [ebp - 0x104]
mov dword [ebp - 0x178], 0
add edi, eax
mov dword [ebp - 0x168], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x180], edi
lea esi, [ebp - 0x124]
mov dword [ebp - 0x164], 0xb9bbbdb7
movups xmmword [ebp - 0xa4], xmm0
mov byte [ebp - 0x160], 0
xor ecx, ecx
movups xmmword [ebp - 0x94], xmm0
nop dword [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x168], al
inc ecx
cmp ecx, 8
jb 0x1000b320
mov al, byte [ebp - 0x168]
mov byte [ebp - 0x160], 0
mov byte [ebp - 0xa4], al
test al, al
je 0x1000b365
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x168]
mov byte [ebp + ecx - 0xa4], al
test al, al
jne 0x1000b350
movsx ebx, byte [ebp - 0x124]
mov al, bl
add al, al
lea ecx, [eax + ebx]
add cl, byte [ebp - 0xa4]
inc cl
mov byte [ebp - 0xa4], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0xa4]
cdq
idiv ecx
movzx eax, byte [ebp - 0xa3]
or edx, ebx
add al, dl
mov byte [ebp - 0xa3], al
movzx eax, byte [ebp - 0xa3]
mov cl, byte [ebp - 0xa4]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0xa1]
mov byte [ebp - 0xa1], cl
movsx ecx, byte [ebp - 0xa1]
movzx eax, byte [ebp - 0xa0]
sar ecx, 6
add al, cl
xor edi, edi
mov byte [ebp - 0xa0], al
mov eax, 3
movsx edx, byte [ebp + eax - 0xa4]
movsx ecx, byte [ebp + eax - 0xa5]
add edx, edx
add ecx, edx
inc eax
lea edi, [edi + ecx*2]
cmp eax, 0x11
jl 0x1000b3e0
mov ecx, dword [ebp - 0x178]
mov eax, edi
cdq
mov edi, dword [ebp - 0x180]
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x1000b45f
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x178], eax
cmp dword [ebp - 0x178], 0xe
jle 0x1000b438
mov dword [ebp - 0x178], 1
mov al, byte [ebp - 0x124]
lea ecx, [ebp - 0x124]
mov byte [edi], al
test al, al
je 0x1000b480
mov eax, ecx
sub edi, eax
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edi + ecx], al
test al, al
jne 0x1000b450
jmp 0x1000b480
mov al, byte [ebp - 0x124]
mov byte [edi], al
test al, al
je 0x1000b480
lea eax, [ebp - 0x124]
sub edi, eax
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [edi + esi], al
test al, al
jne 0x1000b473
mov dword [ebp - 0x12c], 0xe1aab1b1
xor ecx, ecx
mov word [ebp - 0x128], 0xebea
mov byte [ebp - 0x126], 0
nop dword [eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x12c], al
inc ecx
cmp ecx, 6
jb 0x1000b4a0
xor eax, eax
mov byte [ebp - 0x126], 0
cmp byte [ebp - 0x104], al
je 0x1000b4cc
inc eax
cmp byte [ebp + eax - 0x104], 0
jne 0x1000b4c1
lea edi, [ebp - 0x104]
mov dword [ebp - 0x178], 0
add edi, eax
mov dword [ebp - 0x174], 0xb1beb3b0
xorps xmm0, xmm0
mov dword [ebp - 0x180], edi
lea esi, [ebp - 0x12c]
mov dword [ebp - 0x170], 0xb9bbbdb7
movups xmmword [ebp - 0xc4], xmm0
mov byte [ebp - 0x16c], 0
xor ecx, ecx
movups xmmword [ebp - 0xb4], xmm0
nop dword [eax + eax]
lea eax, [ecx - 0x7e]
xor byte [ebp + ecx - 0x174], al
inc ecx
cmp ecx, 8
jb 0x1000b520
mov al, byte [ebp - 0x174]
mov byte [ebp - 0x16c], 0
mov byte [ebp - 0xc4], al
test al, al
je 0x1000b565
xor ecx, ecx
nop dword [eax]
lea ecx, [ecx + 1]
mov al, byte [ebp + ecx - 0x174]
mov byte [ebp + ecx - 0xc4], al
test al, al
jne 0x1000b550
movsx ebx, byte [ebp - 0x12c]
mov al, bl
add al, al
lea ecx, [eax + ebx]
add cl, byte [ebp - 0xc4]
inc cl
mov byte [ebp - 0xc4], cl
mov ecx, 0xc
movsx eax, byte [ebp - 0xc4]
cdq
idiv ecx
movzx eax, byte [ebp - 0xc3]
or edx, ebx
add al, dl
mov byte [ebp - 0xc3], al
movzx eax, byte [ebp - 0xc3]
mov cl, byte [ebp - 0xc4]
and cl, al
add cl, cl
dec cl
add cl, byte [ebp - 0xc1]
mov byte [ebp - 0xc1], cl
movsx ecx, byte [ebp - 0xc1]
movzx eax, byte [ebp - 0xc0]
sar ecx, 6
add al, cl
xor edi, edi
mov byte [ebp - 0xc0], al
mov eax, 3
movsx edx, byte [ebp + eax - 0xc4]
movsx ecx, byte [ebp + eax - 0xc5]
add edx, edx
add ecx, edx
inc eax
lea edi, [edi + ecx*2]
cmp eax, 0x11
jl 0x1000b5e0
mov ecx, dword [ebp - 0x178]
mov eax, edi
cdq
mov edi, dword [ebp - 0x180]
lea ecx, [ecx*2 + 0x31]
idiv ecx
test edx, edx
jne 0x1000b65f
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x178], eax
cmp dword [ebp - 0x178], 0xe
jle 0x1000b638
mov dword [ebp - 0x178], 1
mov al, byte [ebp - 0x12c]
lea ecx, [ebp - 0x12c]
mov byte [edi], al
test al, al
je 0x1000b680
mov eax, ecx
sub edi, eax
nop
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
mov byte [edi + ecx], al
test al, al
jne 0x1000b650
jmp 0x1000b680
mov al, byte [ebp - 0x12c]
mov byte [edi], al
test al, al
je 0x1000b680
lea eax, [ebp - 0x12c]
sub edi, eax
mov al, byte [esi + 1]
lea esi, [esi + 1]
mov byte [edi + esi], al
test al, al
jne 0x1000b673
lea edx, [ebp - 0xe4]
lea ecx, [ebp - 0x104]
call fcn.1001ce80
mov ebx, eax
test ebx, ebx
jne 0x1000b6a8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1001e319
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push dword [ebp - 0x184]
push 0
push 0
call ebx
mov esi, eax
push esi
call fcn.1001e38d
add esp, 4
mov edi, eax
push 0
push 0
push esi
push edi
push 0xffffffffffffffff
push dword [ebp - 0x184]
push 0
push 0
call ebx
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1001e319
mov esp, ebp
pop ebp
ret