Function at 0x4025eb
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x4082e8]
mov dword [0x40878d], 0x3fd
push ebx
mov dword [0x408741], 0x4c87
mov ebx, 0xc6f8e435
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x38], 0
push esi
not esi
mov dword [ebp - 0x10], 0xc6f8e434
mov esi, 0x236c
push edi
mov dword [ebp - 0xc], 0xc6f8e679
mov dword [ebp - 8], eax
mov edi, 0x5319
mov esi, 0x2a823c2b
mov edi, 0x138527e2
jmp 0x4028c7
mov eax, dword [ebp - 0xc]
xor ecx, ecx
or ecx, dword [0x408811]
or dword [0x408739], ecx
mov ecx, dword [ebp - 0x10]
imul eax, ecx
sub dword [0x408741], 0x4d57
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xc]
sbb dword [0x40880d], 0xcad
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
and dword [0x408751], 0x4087b9
push 0
inc dword [0x408849]
call dword [sym.imp.USER32.dll_GetWindowDC]
push 0x31
xor dword [0x40878d], 0x408805
call dword [sym.imp.USER32.dll_IsCharAlphaNumericW]
sbb dword [0x408805], 0x40884d
test eax, eax
mov dword [0x4087b9], 0x7a2d
je 0x40267f
mov eax, dword [ebp - 0x28]
mov dword [0x408805], ecx
mov eax, dword [ebp - 0xc]
mov dword [0x4087fd], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [0x40877d], 0x6098
lea ecx, [ebp - 0x24]
mov dword [0x408741], 0x483b
mov dword [ebp - 0x38], ecx
mov dword [0x408741], 0x378b
mov dword [ebp - 0x14], 0xc6f8e434
mov dword [0x408745], 0x52a8
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x1c], ebx
mov dword [0x40874d], 0x7b25
mov dword [0x4081a8], 0x408030
mov dword [0x408745], 0x640e
cmp eax, 0xc6f8e5bc
mov dword [0x408805], 0x6668
jne 0x402766
xor dword [0x408751], 0x7cb4
call fcn.00401382
mov dword [0x40880d], 0x4fb
jmp 0x4027ff
mov dword [0x4087fd], 0x763e
cmp eax, 0xc6f8e514
mov dword [0x40883d], 0x5556
jne 0x4027cf
mov eax, dword [ebp - 0x1c]
mov ecx, dword [0x408414]
and dword [0x408749], 0x40877d
xor eax, esi
or dword [0x408849], 0xa2f
add eax, edi
cmp eax, ecx
mov dword [0x4087bd], 0x3c
jne 0x4027ff
or dword [0x4087fd], 0x408809
push dword [ebp - 0x1c]
push 0xc60001b8
call fcn.00402e84
cmp dword [ebp - 0x28], 0xc6f8e41b
mov dword [0x408791], 0x6bc3
jne 0x4027ff
mov eax, dword [ebp - 0x14]
xor eax, esi
mov ecx, dword [0x408799]
mov ecx, dword [ecx]
adc dword [0x408839], ecx
add eax, edi
dec ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
sub ecx, dword [0x4087fd]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x10]
sub dword [0x408809], edi
mov ecx, dword [ebp - 0x28]
adc dword [0x408789], 0x16d
xor eax, esi
add eax, edi
mov dword [0x4087cd], 0x5768
cmp ecx, eax
jne 0x40288f
dec dword [0x4087f9]
mov eax, dword [ebp - 0x18]
xor eax, esi
add eax, edi
mov dword [ebp - 0x14], eax
mov eax, dword [0x4082d8]
xor dword [0x4082d8], eax
sbb ecx, dword [0x408841]
mov eax, dword [0x4082dc]
movzx ecx, word [0x408839]
and dword [0x40874d], ecx
mov dword [0x40825c], eax
adc dword [0x408779], edx
mov eax, dword [0x4082e0]
mov dword [0x40802c], eax
mov eax, dword [0x4082e4]
sub dword [0x40874d], ecx
mov dword [0x40827c], eax
sbb eax, 0x6421
mov eax, dword [ebp - 0xc]
mov ecx, dword [0x408801]
and dword [0x408749], ecx
mov ecx, dword [ebp - 0x10]
xor eax, esi
xor ecx, esi
or dword [0x4087b9], 0x408755
sub eax, ecx
sub eax, edi
and dword [0x40874d], 0x7956
xor eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
or dword [0x408815], 0x1d77
xor eax, esi
add dword [0x4087fd], 0x408801
add eax, edi
mov dword [0x408779], 0x4ae1
jne 0x402648
xor eax, eax
add eax, dword [0x40877d]
and dword [0x408751], eax
mov eax, dword [ebp - 8]
and edx, edx
mov dword [ebp - 0x34], eax
sub dword [0x408749], ecx
mov eax, dword [0x4081a8]
adc ecx, edx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x38], 0xc6f8e465
mov edx, 0xc6f8e434
adc dword [0x40884d], edi
mov dword [ebp - 0x28], edx
xor dword [0x408791], 0x33c2
mov ecx, dword [ebp - 0x28]
mov ebx, dword [0x40802c]
xor dword [0x408739], 0x7bd3
xor ecx, esi
or dword [0x408795], 0x12f2
add ecx, edi
cmp ecx, ebx
mov dword [0x4087fd], 0x5a3b
je 0x402d68
adc ecx, 0x3e0a
mov eax, dword [eax + 0x1c8]
mov eax, dword [eax]
mov ecx, dword [0x4087c9]
add dword [0x40880d], ecx
mov dword [ebp - 0x38], 0xc6f8e408
or dword [0x4087c5], 0x408849
mov byte [ebp - 1], 0x85
mov ecx, dword [ebp - 0xc]
sbb dword [0x408789], 0x5488
xor eax, esi
xor ecx, esi
add dword [0x408779], 0x408855
add eax, edi
add ecx, edi
mov dword [0x4087c1], 0x5687
cmp ecx, eax
mov dword [0x408851], 0x20c3
je 0x402d68
or dword [0x408741], ebx
mov eax, dword [ebp - 0xc]
add dword [0x4087f9], 0x7a1f
mov dword [ebp - 0x14], eax
not dword [0x408791]
mov eax, dword [ebp - 0xc]
not dword [0x408815]
xor eax, esi
adc dword [0x408859], 0x1a54
add eax, edi
mov dword [0x408809], 0xfdf
jmp 0x402a2f
mov ecx, dword [ebp - 0x14]
xor ecx, esi
inc ecx
neg ebx
xor ecx, esi
mov dword [0x408741], ecx
mov dword [ebp - 0x14], ecx
mov ebx, 0x1da3
inc eax
mov ecx, dword [0x4081a8]
mov ebx, dword [0x4087f9]
mov ecx, dword [ecx + 0x194]
mov ebx, dword [ecx]
mov dword [0x40878d], 0x4886
mov ecx, ebx
mov ebx, dword [ebx + 0x3c]
cmp eax, dword [ebx + ecx + 0x28]
mov dword [0x4087b9], 0x1b71
jb 0x402a16
mov dword [ebp - 0x38], edx
or eax, dword [0x40884d]
mov eax, dword [ebp - 0x14]
mov ecx, dword [0x408839]
or dword [0x4087d1], ecx
mov ecx, dword [0x4081a8]
mov ecx, dword [ecx + 0x194]
mov ecx, dword [ecx]
not dword [0x408815]
xor eax, esi
lea eax, [eax + ecx + 0x138527e2]
mov dword [0x4082d4], eax
and ecx, ecx
mov dword [ebp - 8], 0x1e725789
xor ecx, dword [0x40877d]
mov dword [ebp - 0x14], 0xc6f8e455
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
xor ecx, esi
xor dword [0x4087d1], 0x408789
xor eax, esi
mov dword [0x408741], 0x634
add ecx, edi
add eax, edi
mov dword [0x408749], 0x4518
mov dword [ebp - 0x28], ecx
cmp ecx, eax
mov dword [0x408809], 0x318b
jae 0x402d48
lea eax, [ecx - 0x138527e2]
dec dword [0x4087b9]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
sbb dword [0x408809], 0x3ba8
xor eax, esi
imul eax, eax, 0xdf41139d
mov ebx, dword [0x40878d]
sub dword [0x4087c5], ebx
xor eax, 0xc6f8e08e
sbb dword [0x408745], 0x74dc
add eax, dword [ebp - 8]
add ebx, dword [0x4087d1]
xor edx, edx
and ebx, 0xa2b
mov dword [ebp - 8], eax
mov dword [0x408861], 0x7d3e
mov eax, dword [0x4082d4]
dec dword [0x4087bd]
mov dword [ebp - 0x30], eax
sbb ebx, 0x7fc2
mov eax, dword [ebp - 8]
sbb dword [0x408801], edx
mov ebx, 0xc6f8e408
and dword [0x408749], 0x3ffa
div ebx
mov eax, dword [ebp - 0x10]
test edx, edx
je 0x402bcc
adc dword [0x40880d], 0x408841
xor eax, 0xea823c2b
sbb dword [0x408805], 0x3ef9
add eax, 0x636139d
or eax, 0xc6f8d08e
and dword [0x4087c9], 0x4087c1
sub dword [ebp - 8], eax
mov dword [0x408781], 0x5830
jmp 0x402bfd
mov edx, dword [ebp - 8]
xor dword [0x4087f9], 0x4db5
xor eax, 0xffc33fbf
adc dword [0x40884d], 0x6d10
or eax, 0xdf41139d
add eax, 0x39071f72
and eax, edx
add ebx, dword [0x4087c5]
mov dword [ebp - 8], eax
and ebx, ebx
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
xor dword [0x408779], 0x5410
xor ebx, esi
or dword [0x408859], 0x408815
xor eax, esi
add ebx, edi
add eax, edi
cmp ebx, eax
jae 0x402d32
movzx ecx, word [0x4087c9]
adc dword [0x408845], ecx
lea eax, [ebx - 0x138527e2]
and ecx, 0x4094
mov dword [ebp - 0x1c], eax
inc eax
mov eax, dword [ebp - 0x1c]
xor eax, esi
mov ecx, dword [0x408781]
or dword [0x408741], ecx
mov dword [ebp - 0x2c], eax
xor dword [0x408805], edx
imul eax, eax, 0xc601139d
movzx ecx, byte [0x4087c5]
xor dword [0x4087c1], ecx
xor eax, 0xc6f8d08e
adc ecx, 0x1795
sub dword [ebp - 8], eax
sbb dword [0x40884d], 0x3272
mov eax, dword [ebp - 8]
xor edx, edx
add dword [0x408801], 0x1f71
mov ecx, 0xc6f8e408
sub dword [0x40884d], 0x408841
div ecx
sbb dword [0x4087c1], 0x296d
mov eax, dword [ebp - 0x10]
test edx, edx
je 0x402cd7
xor eax, 0xea823c2b
add eax, 0x636139d
or eax, 0xc6f8d08e
sub dword [ebp - 8], eax
jmp 0x402cee
mov ecx, dword [ebp - 8]
xor eax, 0xffc33fbf
or eax, 0xdf41139d
add eax, 0x39071f72
and eax, ecx
mov dword [ebp - 8], eax
cmp dword [ebp - 0x2c], 0xc6f8e465
jne 0x402d1c
push dword [0x40827c]
push dword [0x40802c]
mov eax, dword [0x4081a8]
mov eax, dword [eax + 0x194]
push dword [eax]
call dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
mov dword [ecx], eax
mov eax, dword [ebp - 0x14]
xor eax, esi
inc ebx
inc dword [ebp - 0x1c]
add eax, edi
cmp ebx, eax
jb 0x402c45
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
xor eax, esi
inc ecx
inc dword [ebp - 0x10]
add eax, edi
mov dword [ebp - 0x28], ecx
cmp ecx, eax
jb 0x402b06
mov eax, dword [ebp - 0xc]
xor eax, esi
add eax, edi
mov dword [0x408220], eax
mov eax, dword [ebp - 0xc]
xor eax, esi
add eax, edi
mov dword [0x408228], eax
mov eax, dword [ebp - 0x38]
jmp 0x402d6b
mov eax, dword [ebp - 0xc]
xor eax, esi
add eax, edi
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
sub eax, edi
xor eax, esi
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
cmp ecx, eax
jne 0x402e6e
mov eax, dword [0x408024]
mov eax, dword [eax]
and dword [ebp - 0x20], 0
or dword [ebp - 0x20], eax
mov eax, dword [0x4082cc]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x38], 0xc6f8e475
mov dword [ebp - 0x28], 0xc6f8e408
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 1], 0x85
mov eax, dword [ebp - 0x38]
xor eax, esi
add eax, edi
push eax
mov eax, dword [ebp - 0x28]
xor eax, esi
add eax, edi
push eax
push dword [0x4082d0]
mov eax, dword [0x4081c8]
push 4
push 1
push 0x40811e
push dword [eax]
call fcn.0040214c
mov al, byte [ebp - 1]
mov ecx, dword [0x4082d0]
xor al, 0x3f
add al, 0x2f
mov byte [ecx], al
mov ecx, dword [ebp - 0x28]
xor ecx, esi
mov eax, 0xec7ad81e
sub eax, ecx
mov ecx, dword [0x4082d0]
sub eax, ecx
mov ecx, dword [0x4082c0]
add esp, 0x20
add eax, ecx
mov ecx, dword [0x4082d0]
mov dword [ecx + 1], eax
push dword [0x4081a8]
push dword [ebp - 0x20]
push dword [0x40827c]
push dword [0x40802c]
push dword [0x40825c]
mov eax, dword [0x4082c0]
push dword [0x408340]
call eax
lea eax, [ebp + 4]
mov dword [0x4082d8], eax
mov eax, dword [0x4082d8]
mov ecx, dword [0x408220]
add dword [eax], ecx
mov eax, dword [0x4081a8]
mov eax, dword [eax + 0x1cc]
mov ecx, dword [eax]
mov eax, dword [0x4082e8]
or dword [eax], ecx
jmp 0x402e7d
mov eax, dword [ebp - 0x18]
mov ecx, dword [0x4082e8]
xor eax, esi
add eax, edi
mov dword [ecx], eax
pop edi
pop esi
pop ebx
leave
ret 0xc