Function at 0x10001940
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x50
mov eax, dword [section..data]
mov esi, dword [ebp + 8]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp dword [0x10017f9c], 0xa
jl 0x10001b0c
mov eax, dword [0x10017f98]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
je 0x10001b0c
push eax
sub esp, 0xc
mov edi, esp
call fcn.10001240
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0x2c]
cmp dword [0x10017fac], 0xa
jl 0x100019d8
mov eax, dword [0x10017fa8]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
je 0x100019d8
mov dword [ebp - 0x4c], edi
mov eax, dword [ebp - 0x4c]
mov byte [eax], 0x8b
mov eax, dword [ebp - 0x4c]
mov dword [eax + 1], 0x818d9084
mov byte [eax + 5], 0x89
add eax, 6
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov byte [eax], 0xd5
mov eax, dword [ebp - 0x3c]
mov dword [eax + 1], 0x868dc6d5
mov byte [eax + 5], 0x87
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x48], edi
mov eax, dword [ebp - 0x48]
mov byte [eax], 0x8b
mov eax, dword [ebp - 0x48]
mov dword [eax + 1], 0x818d9084
mov byte [eax + 5], 0x89
add eax, 6
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
mov byte [eax], 0xd5
mov eax, dword [ebp - 0x54]
mov dword [eax + 1], 0x868dc6d5
mov byte [eax + 5], 0x87
add eax, 6
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x48]
add eax, 0xd
cmp dword [0x10017fac], 0xa
mov dword [ebp - 0x14], eax
jl 0x10001a35
mov eax, dword [0x10017fa8]
lea ecx, [eax - 1]
imul ecx, eax
and ecx, 1
jne 0x100019a4
mov eax, dword [ebp - 0x18]
nop dword [eax + eax]
mov byte [eax], 0
inc eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x44]
jne 0x10001a40
mov edx, dword [0x10017fa8]
mov eax, dword [0x10017fac]
lea ecx, [edx - 1]
mov dword [ebp - 0x58], eax
imul ecx, edx
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
nop
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x40], ecx
test byte [ebp - 0x40], 1
mov edx, dword [ebp - 0x50]
je 0x10001a84
cmp edx, 9
jg 0x10001a70
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x14]
cmp eax, 0xb
ja 0x10001ad0
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [ebp - 0x14]
add eax, edi
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
movsx eax, byte [eax]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x14]
add eax, 0xffffffe0
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x44]
xor eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x40]
mov byte [ecx], al
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, 0xc
jb 0x10001aa0
mov dword [ebp - 0x3c], edi
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x3c]
add eax, 0xc
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
mov byte [eax], 0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10003020
add esp, 4
lea ecx, [ebp - 0x14]
call fcn.100031c0
mov edx, dword [ebp - 0x14]
mov ecx, esi
call fcn.10003210
push eax
sub esp, 0xc
mov edi, esp
call fcn.10001240
cmp dword [0x10017fac], 0xa
jl 0x10001b65
mov ecx, dword [0x10017fa8]
lea edx, [ecx - 1]
imul edx, ecx
and edx, 1
je 0x10001b65
mov dword [ebp - 0x4c], edi
mov ecx, dword [ebp - 0x4c]
mov byte [ecx], 0x8b
mov ecx, dword [ebp - 0x4c]
mov dword [ecx + 1], 0x818d9084
mov byte [ecx + 5], 0x89
add ecx, 6
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x3c]
mov byte [ecx], 0xd5
mov ecx, dword [ebp - 0x3c]
mov dword [ecx + 1], 0x868dc6d5
mov byte [ecx + 5], 0x87
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x48], edi
mov ecx, dword [ebp - 0x48]
mov byte [ecx], 0x8b
mov ecx, dword [ebp - 0x48]
mov dword [ecx + 1], 0x818d9084
mov byte [ecx + 5], 0x89
add ecx, 6
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x54]
mov byte [ecx], 0xd5
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 1], 0x868dc6d5
mov byte [ecx + 5], 0x87
add ecx, 6
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x48]
add ecx, 0xd
cmp dword [0x10017fac], 0xa
mov dword [ebp - 0x14], ecx
jl 0x10001bc3
mov ecx, dword [0x10017fa8]
lea edx, [ecx - 1]
imul edx, ecx
and edx, 1
jne 0x10001b31
mov ecx, dword [ebp - 0x18]
nop word cs:[eax + eax]
mov byte [ecx], 0
inc ecx
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x44]
cmp ecx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x44]
jne 0x10001bd0
mov ebx, dword [0x10017fa8]
mov ecx, dword [0x10017fac]
lea edx, [ebx - 1]
mov dword [ebp - 0x58], ecx
imul edx, ebx
mov dword [ebp - 0x5c], edx
mov ebx, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x58]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x40], edx
test byte [ebp - 0x40], 1
mov ebx, dword [ebp - 0x50]
je 0x10001c14
cmp ebx, 9
jg 0x10001c00
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xb
ja 0x10001c60
nop word cs:[eax + eax]
nop dword [eax]
mov ecx, dword [ebp - 0x14]
add ecx, edi
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x40]
movsx ecx, byte [ecx]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0xffffffe0
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x44]
xor ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x40]
mov byte [edx], cl
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xc
jb 0x10001c30
mov dword [ebp - 0x3c], edi
mov ecx, dword [ebp - 0x3c]
add ecx, 0xc
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0
push dword [ebp - 0x3c]
call eax
call fcn.100013e0
lea ebx, [ebp - 0x14]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x31]
lea edi, [ebp - 0x38]
lea ecx, [ebp - 0x24]
mov edx, esi
push ebx
push eax
push edi
call fcn.10003060
add esp, 0xc
mov ecx, dword [ebp - 0x14]
lea edi, [ebp - 0x18]
mov edx, edi
push ebx
call fcn.100031e0
add esp, 4
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
push ebx
push edi
call fcn.10003230
add esp, 8
movzx edx, byte [ebp - 0x14]
movzx ecx, byte [ebp - 0x18]
call fcn.10002d20
test al, 1
je 0x10001977
xor esi, esi
cmp byte [ebp - 0x31], 0
jne 0x10001d14
lea edi, [ebp - 0x20]
lea ecx, [ebp - 0x38]
mov edx, edi
call fcn.100030c0
lea edx, [ebp - 0x19]
mov ecx, edi
mov edi, edx
call fcn.10003200
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x38]
push ebx
call fcn.10003030
add esp, 4
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
push edi
call fcn.100031d0
add esp, 4
test al, 1
jne 0x10001d14
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10005190
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret