Function at 0x40169c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov dword [0x45bd9b], 0x1e
cmp dword [0x45bd9b], 0
je 0x4016f1
cmp dword [0x45bd9b], 0x10
jne 0x4016c6
cmp dword [0x45bd9b], 0x11
jne 0x4016e1
xor eax, eax
add eax, dword [0x45bd9b]
dec eax
mov dword [0x45bd9b], eax
mov eax, dword [0x45bd9b]
dec eax
mov dword [0x45bd9b], eax
jmp 0x4016ac
mov dword [ebp - 4], 0xdf2ef1b
and eax, dword [0x45bdf3]
push ebx
mov dword [ebp - 0x24], 0xdf2ef1a
and dword [0x45bdf3], 0
mov eax, dword [0x45bdf3]
inc eax
mov dword [0x45bdf3], eax
cmp dword [0x45bdf3], 0x28
jne 0x401728
cmp dword [0x45bdf3], 0x1c
jb 0x401710
xor ebx, ebx
xor dword [0x45bca8], edx
mov dword [0x438650], 0x40169c
mov dword [ebp - 8], ebx
sbb dword [0x45bdbb], ebx
mov eax, dword [ebp - 0x24]
or dword [0x45bd67], 0x45bd5b
push esi
mov esi, 0x75683565
and dword [0x45bda7], 0xb2
push edi
and dword [0x45be0b], 0
mov edi, dword [0x45be0b]
inc edi
mov dword [0x45be0b], edi
cmp dword [0x45be0b], 0x25
jne 0x401792
cmp dword [0x45be0b], 0x16
jb 0x401778
xor eax, esi
mov dword [0x45be07], 0x1e
cmp dword [0x45be07], 0
je 0x4017f7
cmp dword [0x45be07], 0xd
jne 0x4017c5
cmp dword [0x45be07], 0xe
jne 0x4017df
mov edi, dword [0x45be07]
dec edi
mov dword [0x45be07], edi
mov edi, dword [0x45be07]
dec edi
mov dword [0x45be07], edi
jmp 0x4017ab
mov edi, 0x789ada7e
or dword [0x45be03], 0x45bdf3
sub eax, edi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], ebx
mov eax, dword [ebp - 0x1c]
cmp ebx, eax
mov dword [0x45bd4f], 0x6887
jae 0x401a24
dec eax
mov eax, dword [ebp - 4]
xor dword [0x45bca0], 0x45bdf7
xor eax, esi
mov dword [0x45bd9b], 0x5488
sub eax, edi
cmp ebx, eax
jne 0x4019f9
and dword [0x45bcb0], 0x320b
push dword [ebp + 8]
call fcn.0040387b
sbb ecx, dword [0x45bd63]
mov dword [ebp - 0x14], eax
and eax, dword [0x45bda7]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
xor eax, esi
sub eax, edi
mov dword [0x45be07], 0x68ea
cmp ecx, eax
je 0x401b25
inc dword [0x45bd67]
push dword [ebp - 0x14]
sbb dword [0x45bd9f], 0x45bd73
push dword [ebp + 8]
and dword [0x45bd4b], 0x6fb0
call fcn.0040397f
mov dword [ebp - 0x14], eax
sub ecx, 0x4185
mov eax, dword [ebp - 4]
mov dword [0x45bd43], 0x11
cmp dword [0x45bd43], 0
je 0x40190b
cmp dword [0x45bd43], 8
jne 0x4018d9
cmp dword [0x45bd43], 9
jne 0x4018f3
mov ecx, dword [0x45bd43]
dec ecx
mov dword [0x45bd43], ecx
mov ecx, dword [0x45bd43]
dec ecx
mov dword [0x45bd43], ecx
jmp 0x4018bf
mov ecx, dword [ebp - 0x14]
xor eax, esi
and dword [0x45bdfb], 0x45bd5b
sub eax, edi
mov dword [0x45bdb7], 0xdcf
cmp ecx, eax
mov dword [0x45bd9f], 0x48cf
je 0x401b25
add dword [0x45bdaf], 0x58f4
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x18]
mov ecx, dword [0x45bd9f]
sbb dword [0x45bd6b], ecx
mov dword [ebp - 0x1c], eax
mov dword [0x45bdf7], 0xf15
mov eax, dword [ebp - 0x14]
add ecx, dword [0x45be0b]
mov ecx, dword [ebp + 8]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x14]
and dword [0x45bdc3], 0
jmp 0x401992
mov ecx, dword [0x45bdc3]
inc ecx
mov dword [0x45bdc3], ecx
cmp dword [0x45bdc3], 0x1a
jae 0x4019cb
cmp dword [0x45bdc3], 0xe
jne 0x4019ac
cmp dword [0x45bdc3], 0xd
jne 0x4019c6
mov ecx, dword [0x45bdc3]
inc ecx
mov dword [0x45bdc3], ecx
jmp 0x401985
mov ecx, dword [ebp + 8]
add ecx, dword [eax + 0x24]
mov dword [ebp - 0x30], ecx
and dword [0x45bc9c], 0x1a4d
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
add ecx, dword [eax + 0x1c]
mov dword [0x45bd5b], 0x1abb
mov dword [ebp - 0x14], ecx
jmp 0x401ada
mov ecx, dword [0x45bd43]
xor dword [0x45bca8], ecx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 8]
add ecx, dword [eax + ebx*4]
mov eax, 0x5773
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
je 0x401ada
jmp 0x401aa3
sbb ecx, eax
mov eax, dword [ebp - 4]
and dword [0x45be0b], edx
mov ecx, dword [ebp - 8]
sbb dword [0x45bdb3], 0x7ac4
xor eax, esi
sub eax, edi
mov dword [0x45bd5b], 0x6918
cmp ecx, eax
je 0x401b25
and dword [0x45bd43], 0
xor eax, eax
xor eax, dword [0x45bd43]
inc eax
mov dword [0x45bd43], eax
cmp dword [0x45bd43], 0x1f
jne 0x401a77
cmp dword [0x45bd43], 0x14
jb 0x401a5c
or dword [0x45bd3b], 0x233a
mov eax, dword [ebp - 0x2c]
xor dword [0x45bd4f], 0x2949
test eax, eax
je 0x401b31
and dword [0x45bca0], 0x268
lea eax, [ebp - 8]
adc dword [0x45bdbf], 0x45bdfb
push eax
or dword [0x45bd4b], 0x45bdab
push dword [ebp - 0x20]
and dword [0x45bda7], 0x45bdaf
push dword [ebp + 0xc]
call fcn.00401e53
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
add dword [0x45bdc3], 0x45bd3b
xor eax, esi
sub dword [0x45bcb4], 0x45bd9f
sub eax, edi
cmp ecx, eax
je 0x401b1f
mov eax, dword [ebp - 0x30]
mov dword [0x45bca4], 0x3852
movzx eax, word [eax + ebx*2]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x34], eax
jmp 0x401a24
inc ebx
jmp 0x40180e
mov eax, dword [ebp - 4]
xor eax, esi
sub eax, edi
jmp 0x401c49
push str.dfhksdjhfk
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 0x386
jle 0x401b4f
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov eax, dword [ebp - 0x34]
add eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x401bd4
mov dword [ebp - 0x18], 0
push 3
xor edx, edx
pop edx
add edx, 8
push edx
pop ecx
push 6
dec ecx
pop ebx
dec ebx
xchg ebx, ecx
sub ebx, ecx
xchg ebx, ecx
dec ecx
mov eax, dword [ebp + 0x14]
imul eax, ecx
sub esp, eax
mov dword [ebp - 0x18], esp
mov eax, dword [ebp - 4]
xor eax, esi
sub eax, edi
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
je 0x401bd4
lea eax, [ebp + 0x14]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
add eax, 4
mov ebx, dword [eax]
mov dword [edx + ecx*4], ebx
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x14]
xor ecx, esi
lea ecx, [ecx + edx - 0x789ada7e]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp + 0x14]
cmp ecx, edx
jne 0x401ba6
mov eax, dword [ebp - 4]
xor eax, esi
sub eax, edi
mov dword [ebp - 0xc], eax
mov ebx, 0x3874
add ebx, 0x2342
xchg ebx, esi
xor ebx, ebx
push esi
mov esi, ebx
pop ebx
mov edx, esi
add ebx, 0x1002
lea eax, [ebp - 0x10]
add edx, eax
add edx, 5
push edx
inc esi
pop ecx
dec ecx
xchg ecx, eax
dec eax
xchg ecx, eax
dec ecx
xchg ecx, edx
dec edx
push edx
mov edx, ebx
pop ebx
dec ebx
call dword [ebx]
cmp dword [ebp + 0x10], esi
je 0x401c35
xchg edx, eax
push 0xb
pop ecx
push 4
pop ebx
inc ebx
xchg ebx, ecx
sub ebx, ecx
xchg ebx, ecx
dec ecx
dec ecx
mov eax, dword [ebp + 0x14]
imul eax, ecx
add esp, eax
xchg edx, eax
push eax
xor ebx, ebx
mov edx, esp
dec edx
inc ebx
add ebx, dword [edx + ebx]
dec ebx
xor edx, edx
add dword [ebp - 0xc], ebx
pop ebx
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
leave
ret