Function at 0x10002a20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
mov eax, 0xca3
mov dword [ebp - 0x40], ecx
mov word [ebp - 0x14], ax
mov ecx, dword [0x1000f058]
mov eax, dword [0x1000f05c]
mov byte [ebp - 3], cl
mov byte [ebp - 5], 0x4e
movzx eax, word [0x1000f054]
mov byte [ebp - 1], al
movsx eax, byte [0x1000f003]
mov dword [ebp - 0x20], eax
movzx eax, byte [0x1000f01a]
mov dword [ebp - 0x34], edx
cdq
mov dword [ebp - 0x68], eax
mov eax, dword [0x1000f040]
mov dword [ebp - 0x64], edx
mov word [ebp - 0x10], ax
movsx eax, word [0x1000f018]
mov dword [ebp - 0x1c], eax
mov al, byte [0x1000f064]
mov byte [ebp - 4], al
push ebx
push esi
mov esi, dword [0x1000f058]
mov ecx, dword [0x1000f05c]
push edi
movsx edi, byte [0x1000f01e]
mov word [ebp - 0xc], si
mov eax, edi
mov byte [ebp - 2], 0x2a
cdq
mov dword [ebp - 0x60], 0xb913f2ed
mov dword [ebp - 0x5c], 0x9e232
mov byte [ebp - 4], 0x35
mov dword [ebp - 0x48], eax
mov ax, word [0x1000f054]
mov al, byte [0x1000f098]
mov byte [ebp - 2], al
mov byte [ebp - 2], 0xef
movzx eax, byte [0x1000f090]
mov dword [ebp - 0x3c], edx
imul edx, eax, 0x4b
cmp word [0x1000f018], 0
mov eax, dword [0x100b0edc]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x44], edx
je 0x10002afd
movsx eax, word [str._k]
xor dword [0x1000f040], eax
jmp 0x10002b17
cmp byte [ebp - 4], 0
je 0x10002b17
movzx eax, word [0x1000f094]
shl eax, 3
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], 0
mov eax, dword [ebp - 0x2c]
add eax, 0x306
mov dword [ebp - 0x4c], eax
movzx eax, word [0x1000f064]
cmp eax, 0x11a8248e
jae 0x10002b61
mov cx, word [0x1000f068]
movzx eax, dl
movsx ecx, cx
cwde
imul ecx, eax
movzx eax, byte [0x1000f005]
movzx ecx, cx
sub cx, ax
movzx edx, cx
mov ecx, dword [ebp - 0x68]
sub dx, cx
mov eax, dword [ebp - 0x64]
mov word [0x1000f080], dx
mov eax, dword [ebp - 0x2c]
add eax, 0x2ea
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
add eax, 0x35d
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
mov cx, word [0x1000f090]
not al
xor cl, al
movzx eax, word [0x1000f050]
mov edx, dword [0x1000f008]
sub cl, al
mov eax, dword [0x1000f00c]
add dl, cl
movzx ecx, word [section..data]
movzx eax, word [0x1000f094]
add eax, ecx
movzx eax, word [ebp - 0x10]
sete cl
sub esp, 8
sub cl, al
mov eax, dword [0x100b0edc]
inc cl
xor cl, dl
mov byte [ebp - 2], cl
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
add eax, 0x12f
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x2c]
add eax, 0x12a
mov dword [ebp - 0x18], eax
call fcn.100013c0
mov ecx, dword [ebp - 0x2c]
mov bh, al
add ecx, 0x175
mov dword [ebp - 0x2c], 0x7f14
mov dword [ebp - 0x50], ecx
add esp, 8
movzx eax, byte [ebp - 3]
mov ecx, dword [0x1000f088]
cdq
mov dword [0x1000f010], eax
mov eax, dword [0x100b0edc]
mov dword [0x1000f014], edx
mov edx, 0x307
mov word [ebp - 0x14], cx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
add eax, 0x290
mov dword [ebp - 0x54], eax
nop dword [eax + eax]
movzx eax, byte [0x1000f030]
dec edx
imul eax, eax, 0xa5
mov byte [0x1000f007], al
movsx ecx, word [0x1000f04c]
movzx eax, byte [ebp - 3]
not ecx
sub ecx, eax
mov eax, dword [0x1000f098]
not ecx
not eax
add eax, ecx
mov word [section..data], ax
test edx, edx
jg 0x10002c30
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x44]
add eax, 0x3e6
mov dword [ebp - 0x38], eax
mov cx, word [0x1000f068]
movzx eax, dl
cmp cx, ax
mov al, 0x49
sbb ecx, ecx
neg ecx
cmp al, dl
sbb eax, eax
neg eax
cmp ecx, eax
jne 0x10002cf8
movzx eax, word [0x1000f0a4]
mov esi, 0x16be
mov ecx, dword [ebp - 0x68]
cdq
mov dword [0x102e5150], eax
mov eax, dword [ebp - 0x64]
mov eax, 0x2fd3
mov dword [0x102e5154], edx
add cx, ax
mov word [str._k], cx
nop
mov al, byte [ebp - 1]
sub al, 0x33
add al, byte [ebp - 1]
mov dl, byte [0x1000f088]
add dl, byte [0x1000f01a]
xor dl, 0x87
mov byte [ebp - 1], al
mov ecx, dword [0x1000f09c]
test edi, edi
sete al
sub dl, al
mov eax, dword [ebp - 0x1c]
add cl, dl
add al, cl
mov byte [ebp - 4], al
sub esi, 1
jne 0x10002cc0
jmp 0x10002cfe
mov ax, word [0x1000f054]
mov eax, dword [ebp - 0x24]
sub esp, 8
add eax, 0x218
mov dword [ebp - 0x54], eax
mov eax, dword [0x100b0edc]
mov dword [ebp - 0x14], eax
call fcn.100012d0
add esp, 8
mov word [ebp - 0x10], ax
cmp dword [0x1000f06c], 0
jne 0x10002d32
mov esi, 0x11a8e433
xor ecx, ecx
jmp 0x10002d40
xorps xmm0, xmm0
movlpd qword [ebp - 0x68], xmm0
mov ecx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x68]
movzx eax, byte [ebp - 1]
cdq
cmp esi, eax
jne 0x10002d54
cmp ecx, edx
jne 0x10002d54
mov esi, 1
jmp 0x10002d56
xor esi, esi
movzx ecx, word [section..data]
xor edx, edx
movsx eax, byte [ebp - 5]
cmp eax, ecx
movsx eax, word [str._k]
setne dl
inc edx
add edx, eax
cmp esi, edx
jl 0x10002e20
movzx eax, byte [0x1000f007]
mov dl, 0x38
cmp dword [0x1000f098], eax
mov al, byte [0x1000f007]
sbb ecx, ecx
inc ecx
cmp dl, al
sbb eax, eax
inc eax
cmp ecx, eax
je 0x10002dd0
cmp byte [ebp - 3], 0
je 0x10002da7
mov eax, 0xffffad81
jmp 0x10002dab
mov ax, word [ebp - 0xc]
mov ecx, dword [0x1000f058]
mov word [str._k], ax
not cx
mov eax, dword [0x1000f05c]
movzx eax, cx
sub eax, dword [0x1000f060]
movzx eax, ax
mov dword [ebp - 0x2c], eax
jmp 0x10002e4f
mov eax, dword [0x1000f010]
mov ecx, dword [0x1000f014]
cmp eax, 0x7f14
jne 0x10002de6
test ecx, ecx
je 0x10002deb
mov ecx, 1
mov eax, dword [ebp - 0x20]
neg eax
sbb eax, eax
neg eax
cmp ecx, eax
jne 0x10002e4f
mov ax, word [0x1000f094]
movzx ecx, word [0x1000f018]
add ax, ax
mov word [0x1000f04c], ax
mov eax, dword [ebp - 0x20]
add eax, 0xffff87bb
add eax, ecx
mov word [0x1000f018], ax
jmp 0x10002e4f
mov ax, word [0x1000f050]
mov cx, word [ebp - 0xc]
add cx, ax
mov eax, 0x67af
add cx, ax
mov eax, dword [0x1000f078]
mov word [ebp - 0xc], cx
mov ecx, dword [0x1000f07c]
mov dword [0x1000f088], eax
mov dword [0x1000f08c], ecx
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x3c]
add eax, 0x73
mov edi, dword [ebp - 0x48]
push esi
mov dword [ebp - 0x54], eax
mov ecx, dword [0x1000f028]
mov eax, dword [0x1000f02c]
push edi
push eax
push ecx
call fcn.1000d360
mov dword [0x1000f028], eax
mov dword [0x1000f02c], edx
mov dword [ebp - 0x1c], 0x88d19484
mov eax, dword [ebp - 0x14]
add eax, 0x31e
mov dword [ebp - 0x24], eax
shrd edi, esi, 8
mov dword [ebp - 0x60], edi
shr esi, 8
mov dword [ebp - 0x5c], esi
mov eax, dword [ebp - 0x14]
movzx ecx, byte [0x1000f002]
add eax, 0x6c
mov dword [ebp - 0x3c], eax
add ecx, 0xffffff80
mov eax, dword [ebp - 0x20]
and eax, ecx
mov dword [ebp - 0x20], eax
movsx eax, byte [ebp - 4]
mov dword [0x10156150], eax
mov eax, dword [0x100b0edc]
mov dword [ebp - 0x1c], eax
movzx eax, byte [ebp - 2]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x12f
mov dword [ebp - 0x48], eax
call fcn.100010d0
mov byte [ebp - 4], al
cmp word [ebp - 0xc], 0x3c
jge 0x10002ef3
cmp word [0x1000f0a4], 0
jne 0x10002f04
movsx eax, byte [ebp - 5]
cdq
sub dword [0x1000f088], eax
sbb dword [0x1000f08c], edx
mov eax, dword [ebp - 0x1c]
add eax, 0x2f1
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x1c]
add eax, 0x3eb
mov dword [ebp - 0x44], eax
mov al, byte [0x1000f007]
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
mov al, byte [ebp - 2]
mov al, byte [ebp - 1]
shr al, 7
movzx eax, al
mov word [0x1000f070], ax
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x28]
add edx, dword [ebp - 0x30]
xor edx, eax
mov eax, dword [ebp - 0x28]
imul eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x28]
push 0xcb519
push 0x92dc3045
add ecx, eax
mov eax, dword [ebp - 0x4c]
add eax, ecx
mov esi, dword [edi + 4]
mov ecx, dword [edi]
imul eax, edx
mov edx, 0x11c
mov dword [ebp - 0x20], esi
add ecx, eax
mov dword [ebp - 0x28], ecx
mov ecx, dword [0x1000f010]
mov eax, dword [0x1000f014]
mov al, byte [ebp - 2]
and al, cl
mov byte [ebp - 2], al
mov ecx, dword [ebp - 0x18]
add ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
sub edx, eax
mov eax, dword [ebp - 0x18]
xor edx, ecx
sub eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x50]
imul eax, edx
imul ecx, eax
mov eax, dword [ebp - 0x18]
imul eax, ecx
add edi, eax
movzx eax, word [0x1000f064]
cdq
push edx
push eax
call fcn.1000d360
cmp dword [ebp - 0x34], 0
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
jbe 0x1000317d
mov esi, dword [ebp + 0xc]
mov edx, 0x5a46
sub dword [ebp + 8], esi
nop dword [eax]
mov ecx, dword [0x1000f008]
sub esp, 0x10
mov eax, dword [0x1000f00c]
movsx eax, byte [0x1000f078]
movsx ecx, cl
imul ecx, eax
mov al, byte [str._k]
not al
add cl, al
mov eax, dword [ebp - 0x28]
add cl, byte [0x1000f018]
inc eax
mov byte [0x1000f01d], cl
movzx ecx, al
movzx eax, byte [ebp - 1]
sub ax, dx
mov dword [ebp - 0x28], ecx
mov word [ebp - 0x14], ax
mov dword [ebp - 0x1c], 0xed59d114
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov bl, byte [edi + ecx + 8]
movzx eax, bl
add eax, dword [ebp - 0x20]
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp - 2]
mov dword [0x1000f078], 0xa95d47de
mov dword [0x1000f07c], 0x944b6
call fcn.10001940
mov eax, dword [ebp - 0x3c]
add esp, 0x10
sub eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x24]
xor edx, dword [ebp - 0x24]
imul edx, eax
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
add ecx, dword [ebp - 0x54]
imul ecx, eax
mov eax, dword [ebp - 0x1c]
mov al, byte [0x1000f004]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
xor ecx, edx
mov edx, dword [ebp - 0x20]
movzx edx, byte [edi + edx + 8]
sub edx, ecx
mov byte [edi + eax + 8], dl
mov eax, dword [ebp - 0x2c]
movzx ecx, ax
mov dword [ebp - 0x50], edx
lea edx, [ecx + 0x5d]
nop dword [eax]
movzx eax, word [0x1000f074]
mov byte [0x1000f003], 0x93
cmp eax, edx
jne 0x100030ce
mov eax, dword [0x1000f06c]
add eax, ecx
cmp eax, 1
je 0x100030b0
cmp word [ebp - 0x2c], 0
mov eax, dword [ebp - 0x20]
mov byte [edi + eax + 8], bl
je 0x100030ea
mov ax, word [0x100214b8]
mov word [str._k], ax
jmp 0x10003158
cmp dword [0x1000f098], 0
je 0x100030fe
mov bh, byte [0x1000f004]
add bh, 0x41
jmp 0x10003158
cmp word [ebp - 0xc], 0
je 0x10003112
mov ax, word [ebp - 0xc]
sub al, 0x5b
mov byte [0x1000f006], al
jmp 0x10003158
mov ax, word [0x1000f03c]
mov al, byte [ebp - 3]
movzx ecx, word [0x1000f090]
movsx ax, bh
movzx eax, ax
imul ecx, eax
movzx eax, word [0x1000f070]
sub ax, cx
mov ecx, 0x2b96
add ax, cx
movzx ecx, byte [ebp - 1]
movzx eax, ax
add cx, ax
movzx eax, cx
movzx ecx, byte [ebp - 1]
add cx, ax
movzx eax, cx
mov dword [ebp - 0x2c], eax
add bl, byte [ebp - 0x50]
mov edx, 0x5a46
mov ecx, dword [ebp + 8]
movzx eax, bl
mov al, byte [eax + edi + 8]
xor al, byte [ecx + esi]
mov byte [esi], al
inc esi
sub dword [ebp - 0x34], 1
jne 0x10002fe0
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x40]
xor edx, edx
mov eax, dword [ebp - 0x28]
mov dword [ecx], eax
mov ax, word [ebp - 0xc]
add al, 0x6c
mov byte [0x1000f01b], al
mov eax, dword [ebp - 0x44]
sub esi, eax
mov eax, dword [ebp - 0x44]
add eax, esi
mov dword [ecx + 4], eax
movzx ecx, byte [0x1000f01b]
movsx eax, word [ebp - 0x10]
cmp ecx, eax
mov al, byte [0x1000f01b]
mov cl, 0x64
setg dl
cmp cl, al
sbb eax, eax
neg eax
cmp edx, eax
ja 0x1000324c
mov edx, dword [0x1000f09c]
xor esi, esi
mov ecx, dword [0x1000f010]
mov eax, dword [0x1000f014]
cmp esi, eax
jl 0x100031e8
jg 0x100031e1
cmp edx, ecx
jb 0x100031e8
mov ecx, 1
jmp 0x100031ea
xor ecx, ecx
cmp dword [0x1000f09c], 0x43
sbb eax, eax
inc eax
cmp ecx, eax
je 0x1000324c
movzx eax, byte [0x1000f01c]
mov esi, dword [0x1000f058]
mov ecx, dword [0x1000f05c]
cdq
cmp edx, ecx
jg 0x1000324c
jl 0x10003216
cmp eax, esi
ja 0x1000324c
mov dl, byte [0x1000f060]
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
mov al, byte [ebp - 3]
shl dl, 6
sub dl, byte [0x1000f060]
not dl
sub dl, cl
mov ecx, 0x2e75
add al, dl
mov byte [0x1000f004], al
movzx eax, byte [ebp - 3]
add ax, cx
add word [0x1000f048], ax
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret