Function at 0x10001910
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x440
mov eax, dword [0x1000c040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x414], edx
mov edx, dword [0x1000d9d4]
imul edx, edx, 0x170
mov dword [ebp - 0x410], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x420], ecx
mov ecx, dword [ebp + 0x10]
push esi
push edi
mov dword [ebp - 0x40c], eax
mov dword [ebp - 0x41c], ecx
mov dword [0x1000cbac], edx
call fcn.10002770
imul eax, eax, 0xffffffc6
mov edi, dword [0x1000cbc4]
mov ecx, dword [0x1000cbac]
mov esi, dword [0x1000cbe8]
add edi, 0xffffff9a
mov dword [0x1000cbb0], eax
mov dword [0x1000cbd4], 0x157ec
mov dword [0x1000cbb4], edi
mov eax, 0xffffd788
cmp ecx, 0x4d
jge 0x100019b2
add ecx, 0xffffdbac
mov dword [0x1000cbbc], ecx
call fcn.10001870
xor eax, 0xc9
jmp 0x100019d0
cmp edi, 0x1b1
jl 0x100019d0
lea ecx, [esi + 0xf6]
mov dword [0x1000cbec], ecx
jmp 0x100019d0
xor edx, edx
mov dword [ebp - 0x424], edx
cmp edi, 0x1b1
jl 0x100019ec
add esi, 0xf6
mov dword [0x1000cbec], esi
mov esi, dword [0x1000cbe0]
mov ecx, dword [0x1000cbc0]
imul esi, esi, 0x10d
and ecx, 0xffffffce
push ebx
mov dword [0x1000cbb0], ecx
mov dword [0x1000cbe8], esi
mov dword [0x1000cbdc], 0x6e
mov dword [ebp - 0x438], edx
cmp eax, 0x1ad
jne 0x10001a7a
mov edx, dword [0x1000cba4]
cmp edx, dword [0x1000cbd0]
jle 0x10001a42
mov eax, dword [0x1000cba8]
or eax, 0xfffffff0
mov dword [0x1000cbdc], eax
jmp 0x10001a7a
call fcn.10001870
cmp eax, 0xffffffdc
jg 0x10001a7a
mov ebx, 4
call fcn.10001870
mov esi, dword [0x1000cbc0]
and eax, 0x1ad
add esi, 0x1e6
mov dword [0x1000cbec], eax
mov dword [0x1000cbe8], esi
call fcn.10001870
dec ebx
jne 0x10001a51
mov dword [0x1000cbc4], 0xffffffef
mov ebx, 4
lea esp, [esp]
cmp edi, 0x1b1
jl 0x10001aa4
lea ecx, [esi + 0xf6]
mov dword [0x1000cbec], ecx
call fcn.10002770
add eax, 0xd9
mov dword [0x1000cbe4], eax
cmp edi, 0x1b1
jl 0x10001ac7
lea edx, [esi + 0xf6]
mov dword [0x1000cbec], edx
call fcn.10002770
imul eax, eax, 0x14f
dec ebx
mov dword [0x1000cbb8], eax
jne 0x10001a90
cmp edi, 0x1b1
jl 0x10001aed
lea eax, [esi + 0xf6]
mov dword [0x1000cbec], eax
call fcn.10002770
mov dword [0x1000cbe0], 0x1ee
mov dword [0x1000cbd8], 0xffff9754
cmp edi, 0x1b1
jl 0x10001b26
lea ecx, [esi + 0xf6]
lea edx, [esi + 0xf6]
mov dword [0x1000cbec], ecx
mov dword [0x1000cbec], edx
call fcn.10002770
add eax, 0xd9
mov dword [0x1000cbe4], eax
cmp edi, 0x1b1
jl 0x10001b54
lea eax, [esi + 0xf6]
lea ecx, [esi + 0xf6]
mov dword [0x1000cbec], eax
mov dword [0x1000cbec], ecx
call fcn.10002770
mov edx, dword [0x1000cbb0]
add eax, 0xd9
mov dword [0x1000cbe4], eax
mov dword [ebp - 0x430], 0
mov dword [0x1000cb98], 0xef
mov ecx, 2
cmp edi, 0x1b1
jl 0x10001b96
add esi, 0xf6
mov dword [0x1000cbec], esi
dec ecx
lea esi, [edx + 0xef]
jne 0x10001b82
mov dword [0x1000cbe8], esi
mov dword [0x1000cbc0], 0x184
cmp edi, 0x1b1
jl 0x10001bc3
lea edx, [esi + 0xf6]
mov dword [0x1000cbec], edx
mov ebx, dword [0x1000cbbc]
add eax, ebx
mov dword [0x1000cba0], 0xf
mov dword [0x1000cba4], eax
mov dword [0x1000cbac], 0xffffff01
cmp edi, 0x1b1
jl 0x10001bf7
lea eax, [esi + 0xf6]
mov dword [0x1000cbec], eax
mov dword [0x1000cbc8], 0xa3
call fcn.10002770
add eax, 0xd9
test byte [0x1000d9dc], 1
mov dword [0x1000cbe4], eax
jne 0x10001c4b
or dword [0x1000d9dc], 1
push 0
push 0x100000
push 4
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov edi, dword [0x1000cbb4]
mov ebx, dword [0x1000cbbc]
mov esi, dword [0x1000cbe8]
mov dword [0x1000d9d8], eax
mov eax, dword [0x1000cbe4]
mov dword [0x1000cbc0], 0x184
cmp edi, 0x1b1
jl 0x10001c69
lea ecx, [esi + 0xf6]
mov dword [0x1000cbec], ecx
add eax, ebx
mov dword [0x1000cba0], 0xf
mov dword [0x1000cba4], eax
cmp edi, 0x1b1
jl 0x10001c8e
add esi, 0xf6
mov dword [0x1000cbec], esi
call fcn.10002770
cmp dword [0x1000cbcc], 0xffffffd8
lea esi, [eax + 0xd9]
mov dword [0x1000cbe4], esi
mov edi, 0x184
jle 0x10001d05
cmp dword [0x1000cbb0], edi
jge 0x10001d05
call fcn.10002770
xor eax, dword [0x1000cbd0]
add esi, ebx
mov dword [0x1000cbd8], eax
mov dword [0x1000cbc0], edi
mov dword [0x1000cba0], 0xf
mov dword [0x1000cba4], esi
call fcn.10002770
mov edx, dword [0x1000cba4]
add eax, 0xd9
xor edx, 0x66
mov dword [0x1000cbe4], eax
mov dword [0x1000cbec], 0xffffb410
mov dword [0x1000cbd0], edx
call fcn.10002770
xor eax, dword [0x1000d9d4]
mov dword [0x1000cbc8], 0x7b
mov dword [0x1000cbbc], eax
call fcn.10002770
mov ecx, dword [0x1000d9d8]
sub eax, 0x10
mov dword [0x1000cbac], eax
mov eax, dword [ebp - 0x414]
inc eax
push eax
push 8
push ecx
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x428], eax
test eax, eax
jne 0x10001e84
call fcn.10002770
mov esi, dword [0x1000d9d4]
mov ebx, dword [0x1000cbe4]
cmp eax, esi
jge 0x10001d7f
call fcn.10002770
mov ecx, dword [0x1000cbac]
cmp ecx, eax
jge 0x10001dd6
mov edx, ebx
or edx, ecx
mov dword [0x1000cbd0], edx
mov edi, dword [0x1000cbb4]
mov dword [ebp - 0x430], 1
call fcn.10002770
mov esi, dword [0x1000cbe8]
cmp esi, eax
jne 0x10001dff
cmp edi, 0x1b1
jl 0x10001db2
lea edx, [esi + 0xf6]
mov dword [0x1000cbec], edx
mov dword [0x1000cba4], 0xffffffce
call fcn.10002770
imul esi, esi, 0x66
not eax
mov dword [0x1000cbac], eax
mov dword [0x1000cba0], esi
jmp 0x100026eb
mov eax, dword [0x1000cbcc]
mov ecx, dword [0x1000cbd0]
xor eax, 0x17
imul ecx, esi
mov edi, 0x26dd1
mov dword [0x1000cbb4], edi
mov dword [0x1000cbc0], eax
mov dword [0x1000cbec], ecx
jmp 0x10001d85
lea eax, [ebx + 0x13f]
mov dword [0x1000cb9c], eax
mov dword [0x1000cbc0], 0x184
cmp edi, 0x1b1
jl 0x10001e28
lea ecx, [esi + 0xf6]
mov dword [0x1000cbec], ecx
add ebx, dword [0x1000cbbc]
mov dword [0x1000cba0], 0xf
mov dword [0x1000cba4], ebx
mov dword [0x1000cbac], 0xffffff01
cmp edi, 0x1b1
jl 0x10001e5c
add esi, 0xf6
mov dword [0x1000cbec], esi
mov dword [0x1000cbc8], 0xa3
call fcn.10002770
add eax, 0xd9
mov dword [0x1000cbe4], eax
mov dword [0x1000cbe0], 0xffffe868
jmp 0x100026eb
call fcn.10002770
mov ebx, dword [0x1000cbe8]
mov esi, eax
and esi, 0xfffffff1
mov dword [0x1000cbb4], esi
mov dword [0x1000cbc0], edi
cmp esi, 0x1b1
jl 0x10001eb3
lea eax, [ebx + 0xf6]
mov dword [0x1000cbec], eax
mov edx, dword [0x1000cbe4]
add edx, dword [0x1000cbbc]
mov dword [0x1000cba0], 0xf
mov dword [0x1000cba4], edx
mov dword [0x1000cbac], 0xffffff01
cmp esi, 0x1b1
jl 0x10001eec
lea eax, [ebx + 0xf6]
mov dword [0x1000cbec], eax
mov dword [0x1000cbc8], 0xa3
call fcn.10002770
push 0x401
lea edx, [ebp - 0x408]
lea edi, [eax + 0xd9]
lea ecx, [ebx - 0x187]
push 0
push edx
mov dword [0x1000cbe4], edi
mov dword [0x1000cbe0], 0x1d0
mov dword [0x1000cbb0], ecx
call fcn.10007750
mov eax, dword [0x1000cb98]
add esp, 0xc
cmp eax, 0x26
jg 0x10001fba
add eax, 0xfffffe66
mov dword [0x1000cbbc], eax
mov dword [0x1000cbc0], 0x184
cmp esi, 0x1b1
jl 0x10001f65
lea ecx, [ebx + 0xf6]
mov dword [0x1000cbec], ecx
add edi, eax
mov dword [0x1000cba0], 0xf
mov dword [0x1000cba4], edi
mov dword [0x1000cbac], 0xffffff01
cmp esi, 0x1b1
jl 0x10001f95
add ebx, 0xf6
mov dword [0x1000cbec], ebx
mov dword [0x1000cbc8], 0xa3
call fcn.10002770
add eax, 0xd9
mov dword [0x1000cbe4], eax
mov dword [0x1000cb9c], 0xfffffe99
jmp 0x10001fc6
cmp dword [0x1000cb9c], 0xce
je 0x10001ff1
mov edx, dword [0x1000cbac]
and edx, 0x13f
mov dword [0x1000cbb0], edx
mov dword [0x1000cbe0], 0x18e47
call fcn.10002770
or eax, 0x184
mov dword [0x1000cba8], eax
mov esi, dword [ebp - 0x410]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp - 0x408]
push esi
push eax
call fcn.10007b80
mov edx, dword [0x1000cbe4]
add edx, dword [0x1000cbbc]
mov edi, dword [0x1000cbb4]
add esp, 0xc
mov dword [0x1000cba4], edx
cmp edi, 0x1b1
jl 0x1000203e
mov eax, dword [0x1000cbe8]
add eax, 0xf6
mov dword [0x1000cbec], eax
mov ecx, dword [ebp - 0x414]
mov edx, dword [ebp - 0x420]
mov esi, dword [0x1000cbc8]
mov eax, dword [ebp - 0x428]
push ecx
push edx
add esi, 0x3e
push eax
mov dword [0x1000cbac], 0x1ff
mov dword [0x1000cbe0], esi
call fcn.10007b80
mov ecx, dword [0x1000cbec]
add esp, 0xc
cmp dword [0x1000cb9c], ecx
jl 0x100020c3
call fcn.10002770
imul eax, dword [0x1000cbc4]
mov dword [0x1000cbdc], eax
mov dword [0x1000cb9c], 0x16e
call fcn.10001870
mov edx, dword [0x1000cb98]
and eax, 0xfffffffc
and edx, 0xffffffce
mov dword [0x1000cbd0], eax
mov dword [0x1000cbec], edx
mov dword [0x1000d9d4], 0x17d
call fcn.10001870
cmp eax, 0x66
jne 0x10002125
or esi, 0x4f
mov dword [0x1000cba8], esi
mov dword [ebp - 0x418], 3
lea ebx, [eax + 0x75]
mov esi, 2
call fcn.10002770
mov ecx, 0x141
sub ecx, eax
mov dword [0x1000cbc8], ecx
cmp edi, 0x1b1
jl 0x10002114
mov edx, dword [0x1000cbe8]
add edx, 0xf6
mov dword [0x1000cbec], edx
dec esi
mov dword [0x1000cbe4], ebx
jne 0x100020e8
dec dword [ebp - 0x418]
jne 0x100020e3
lea eax, [ebp - 0x408]
push eax
call section..text
mov ebx, dword [0x1000cbe8]
add esp, 4
cmp edi, 0x1b1
jl 0x1000214e
lea ecx, [ebx + 0xf6]
mov dword [0x1000cbec], ecx
mov eax, dword [0x1000cbc0]
and eax, 0xef
mov dword [0x1000cbc4], eax
cmp edi, 0x1b1
jl 0x10002171
lea edx, [ebx + 0xf6]
mov dword [0x1000cbec], edx
mov eax, dword [0x1000cbb0]
add eax, 0xffffffce
mov dword [0x1000d9d4], eax
call fcn.10002770
mov esi, dword [0x1000cbec]
mov ecx, dword [ebp - 0x41c]
add esi, 0x66
mov dword [ecx], 0
mov dword [0x1000cbb0], esi
cmp edi, 0x1b1
jl 0x100021b2
add ebx, 0xf6
mov dword [0x1000cbec], ebx
mov edx, dword [0x1000cbe4]
add edx, dword [0x1000cbbc]
mov dword [0x1000cbb4], 0x121
mov dword [0x1000cbe0], 0xffffff64
mov dword [0x1000cba4], edx
mov dword [0x1000cbac], 0xffffff01
call fcn.10002770
cmp eax, 0xef
jle 0x1000220c
mov ecx, 0xffffffea
sub ecx, dword [0x1000cb9c]
mov esi, 0x126
mov dword [0x1000cba4], ecx
mov dword [0x1000cbb0], esi
jmp 0x10002247
mov eax, dword [0x1000cb9c]
lea edx, [eax*4]
sub edx, eax
neg edx
add edx, edx
add edx, edx
mov dword [0x1000cbac], edx
call fcn.10002770
xor eax, 0xffffffe4
mov dword [0x1000cbd4], eax
mov eax, esi
imul eax, eax, 0x66
mov dword [0x1000cbec], eax
mov dword [0x1000cbd0], 0x98
mov eax, dword [0x1000cb98]
lea edi, [eax*8]
sub edi, eax
add edi, edi
add edi, edi
add edi, edi
mov dword [0x1000cbcc], edi
mov ebx, 5
call fcn.10002770
imul eax, dword [0x1000cbbc]
mov dword [0x1000cba8], eax
add eax, 0xffffffa8
dec ebx
mov dword [0x1000cbc8], eax
jne 0x10002266
mov eax, dword [ebp - 0x414]
mov dword [ebp - 0x410], ebx
test eax, eax
jle 0x1000261e
mov edx, dword [ebp - 0x40c]
mov ecx, dword [ebp - 0x428]
sub ecx, edx
mov dword [ebp - 0x414], edx
mov dword [ebp - 0x43c], ecx
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x410], eax
lea esp, [esp]
call fcn.10001870
cmp eax, 0x66
jg 0x100022de
call fcn.10002770
mov eax, dword [0x1000cbb8]
imul eax, eax, 0x66
mov dword [0x1000cbd8], eax
jmp 0x100022f4
lea esi, [edi + 0x15f]
mov dword [0x1000cbb0], esi
mov dword [0x1000cbd0], 0xffffa1aa
mov ecx, dword [ebp - 0x424]
inc ecx
and ecx, 0x800000ff
jns 0x1000230b
dec ecx
or ecx, 0xffffff00
inc ecx
mov ebx, dword [0x1000cb98]
mov dword [ebp - 0x424], ecx
cmp ebx, 0x1ea
jge 0x1000233e
call fcn.10002770
xor eax, dword [0x1000cba8]
mov dword [0x1000cbe0], eax
mov eax, ebx
xor eax, dword [0x1000cbac]
mov dword [0x1000cbdc], eax
jmp 0x1000236a
mov eax, dword [0x1000cba4]
add eax, 0xfffffed3
imul eax, edi
mov dword [0x1000cbe4], eax
mov eax, dword [0x1000cbb4]
imul eax, eax
mov dword [0x1000cbe8], eax
call fcn.10002770
imul eax, edi
mov dword [0x1000cbb4], eax
mov ecx, dword [ebp - 0x424]
movzx ebx, byte [ecx + 0x1000d8d0]
mov edx, dword [ebp - 0x438]
lea eax, [ebx + edx]
and eax, 0x800000ff
jns 0x1000238e
dec eax
or eax, 0xffffff00
inc eax
mov edx, dword [0x1000cbd0]
add edx, 0xfffffe2b
mov dword [0x1000cb9c], edx
mov dl, byte [eax + 0x1000d8d0]
mov byte [ecx + 0x1000d8d0], dl
mov dword [ebp - 0x438], eax
and edi, 0xffffffc1
mov byte [eax + 0x1000d8d0], bl
call fcn.10001870
xor dword [0x1000cbdc], 0x19b
mov dword [0x1000cbb4], 0x6e
call fcn.10001870
mov ecx, dword [ebp - 0x424]
xor eax, 0x66
mov dword [0x1000cbec], eax
movzx eax, byte [ecx + 0x1000d8d0]
add eax, ebx
and eax, 0x800000ff
jns 0x100023fe
dec eax
or eax, 0xffffff00
inc eax
mov ebx, dword [0x1000cbb8]
mov dword [ebp - 0x440], eax
mov dword [ebp - 0x40c], 2
jmp 0x10002420
mov dword [ebp - 0x434], 4
lea ebx, [ebx]
call fcn.10001870
cmp dword [0x1000cbc8], eax
jl 0x1000254a
mov dword [ebp - 0x42c], 2
jmp 0x10002450
call fcn.10001870
cmp edi, eax
jne 0x10002534
cmp dword [0x1000cba4], 0x13f
jg 0x100024c1
call fcn.10002770
cmp eax, dword [0x1000cbc4]
jne 0x1000253e
mov esi, dword [0x1000cbc0]
imul esi, dword [0x1000d9d4]
mov eax, dword [0x1000cbe0]
add eax, dword [0x1000cbd0]
mov edx, dword [0x1000cbe4]
add edx, eax
mov dword [0x1000cbbc], eax
mov dword [0x1000cbb0], esi
mov dword [0x1000cba4], edx
mov dword [0x1000cbac], 0xffffff01
mov dword [0x1000cbc0], 0x247
jmp 0x1000253e
mov dword [ebp - 0x418], 2
jmp 0x100024d0
call fcn.10001870
cmp eax, 0x66
jge 0x1000252a
cmp dword [0x1000cb98], 0x84
je 0x1000252a
call fcn.10002770
cmp eax, 0x1a7
jne 0x1000250b
call fcn.10001870
mov ebx, eax
sub ebx, dword [0x1000cbd8]
mov dword [0x1000cbe8], 0x13f
jmp 0x1000252a
mov eax, dword [0x1000cbc8]
mov edi, dword [0x1000cba4]
sub eax, esi
mov dword [0x1000cba0], 0xd2
mov dword [0x1000cbec], eax
and edi, 0x66
dec dword [ebp - 0x418]
jne 0x100024d0
jmp 0x1000253e
mov dword [0x1000cbe8], 0x1d4
dec dword [ebp - 0x42c]
jne 0x10002450
mov eax, 1
sub dword [ebp - 0x434], eax
jne 0x10002430
sub dword [ebp - 0x40c], eax
jne 0x10002420
mov ecx, dword [ebp - 0x43c]
mov eax, dword [ebp - 0x414]
mov dl, byte [ecx + eax]
mov ecx, dword [ebp - 0x440]
xor dl, byte [ecx + 0x1000d8d0]
mov dword [0x1000cbb8], ebx
mov byte [eax], dl
cmp ebx, dword [0x1000cbd0]
jg 0x100025cf
mov dword [ebp - 0x40c], 5
lea esp, [esp]
mov ebx, 5
call fcn.10002770
xor eax, dword [0x1000cba4]
mov dword [0x1000cbc8], eax
call fcn.10002770
imul eax, edi
dec ebx
mov dword [0x1000cbc4], eax
jne 0x100025a5
dec dword [ebp - 0x40c]
jne 0x100025a0
jmp 0x10002601
imul ebx, ebx, 0x66
mov dword [0x1000cba4], ebx
call fcn.10001870
sub eax, dword [0x1000cbdc]
mov edx, dword [0x1000cbbc]
and edx, 0xffffffce
mov dword [0x1000cb98], eax
mov dword [0x1000d9d4], 0xab
mov dword [0x1000cbb8], edx
mov eax, 1
add dword [ebp - 0x414], eax
sub dword [ebp - 0x420], eax
jne 0x100022c0
mov dword [0x1000cbcc], edi
cmp dword [0x1000cbb4], 0x1b1
mov edi, dword [0x1000cbe8]
jl 0x1000263b
lea eax, [edi + 0xf6]
mov dword [0x1000cbec], eax
mov dword [0x1000cbe0], 0x74
call fcn.10001870
mov ecx, dword [ebp - 0x410]
mov edx, dword [ebp - 0x41c]
or edi, 0x10c
xor esi, 0xf7
mov dword [0x1000cbd0], edi
mov dword [edx], ecx
mov dword [0x1000cbac], 0x1ff
mov dword [0x1000cba8], esi
mov dword [0x1000cba4], 0xd5
mov dword [ebp - 0x410], 4
mov ebx, 0x1f3
mov edi, 0xfffff59f
jmp 0x100026a0
mov dword [ebp - 0x41c], 3
lea ebx, [ebx]
mov esi, 4
call fcn.10001870
cmp dword [0x1000cbc8], eax
jge 0x100026d8
mov dword [0x1000cbc8], 0xfffff59c
mov dword [0x1000cbb0], ebx
mov dword [0x1000cbac], edi
dec esi
jne 0x100026b5
dec dword [ebp - 0x41c]
jne 0x100026b0
dec dword [ebp - 0x410]
jne 0x100026a0
mov eax, dword [0x1000cbbc]
or eax, 0x1d0
mov dword [0x1000cb98], eax
mov eax, dword [ebp - 0x428]
pop ebx
test eax, eax
je 0x10002714
push eax
mov eax, dword [0x1000d9d8]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edi, dword [0x1000cbc8]
add edi, 0x131
mov dword [0x1000cbe8], edi
mov esi, 5
jmp 0x10002730
mov eax, dword [0x1000cbec]
mov ecx, eax
or ecx, edi
add eax, 0xfffffeeb
mov dword [0x1000cba4], ecx
mov dword [0x1000cba0], eax
call fcn.10001870
sub eax, 0x2e
dec esi
mov dword [0x1000cbd8], eax
jne 0x10002730
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x430]
pop edi
xor ecx, ebp
pop esi
call fcn.100038bd
mov esp, ebp
pop ebp
ret