Function at 0x401c9a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa8
or dword [0x407600], 0x3716
mov dword [ebp - 0x10], 0xbe05e130
adc dword [0x40768c], ecx
push ebx
mov dword [ebp - 0x4c], 0xbe05e133
xor ebx, ebx
xor eax, eax
add eax, dword [0x407648]
sub eax, dword [0x40761c]
mov dword [0x407648], eax
mov dword [0x40732c], 0x401c9a
adc eax, dword [0x407604]
mov dword [ebp - 0x1c], ebx
add dword [0x407610], 0x40769c
mov eax, dword [ebp - 0x4c]
push esi
movzx esi, word [0x407680]
adc esi, dword [0x407704]
mov dword [0x407680], esi
mov esi, 0x7b6268d5
sbb dword [0x407644], 0x70eb
push edi
mov edi, dword [0x4076d8]
adc dword [0x40768c], edi
xor eax, esi
add dword [0x407718], edx
mov edi, 0x3a98761b
add dword [0x40764c], 0x407650
add eax, edi
mov dword [ebp - 0x48], eax
movzx eax, word [0x4076cc]
mov dword [ebp - 0x50], ebx
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x44], ebx
cmp ebx, eax
mov dword [0x4076d8], 0x5acf
jae 0x401fd3
not eax
mov eax, dword [ebp - 0x10]
xor eax, esi
adc dword [0x4076c0], 0x40768c
add eax, edi
mov dword [0x407614], 0x5865
cmp ebx, eax
jne 0x401fa5
push dword [ebp + 8]
xor dword [0x407708], 0x40765c
call fcn.00402505
add ecx, dword [0x407720]
mov dword [ebp - 0x14], eax
xor eax, eax
xor eax, dword [0x4076ac]
mov eax, dword [eax]
add dword [0x407700], eax
mov eax, dword [ebp - 0x10]
add dword [0x40765c], edx
mov ecx, dword [ebp - 0x14]
xor eax, esi
add eax, edi
cmp ecx, eax
mov dword [0x407618], 0x2967
je 0x402417
mov eax, dword [0x407718]
sbb eax, dword [0x40764c]
mov dword [0x407718], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
add dword [0x4076d0], ebx
mov dword [ebp - 0x14], 0xbe05e130
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], 0xbe05e133
mov eax, dword [ebp - 0x24]
and ecx, dword [0x40764c]
mov eax, dword [eax + 0x78]
adc dword [0x407618], ebx
mov dword [ebp - 0x20], eax
mov eax, dword [0x407740]
mov ecx, dword [0x4076b8]
sub ecx, eax
xor eax, dword [eax + ecx]
mov eax, dword [ebp - 0x18]
sub ecx, 0x377d
mov ecx, dword [ebp - 0x14]
xor eax, esi
mov dword [0x407690], 0x595c
xor ecx, esi
add eax, edi
add ecx, edi
imul eax, ecx
mov ecx, dword [ebp - 0x20]
mov dword [0x407690], 0x4099
cmp ecx, eax
not eax
mov eax, dword [ebp - 0x18]
mov dword [0x407654], 0x7c27
jne 0x401eb2
or ecx, dword [0x40769c]
mov ecx, dword [ebp - 0x14]
xor eax, esi
sub dword [0x4076d8], 0x7d3e
xor ecx, esi
and dword [0x407640], 0x3590
add eax, edi
xor dword [0x4076c8], 0x407644
add ecx, edi
imul eax, ecx
mov dword [0x407710], 0x6bda
jmp 0x401eea
mov ecx, dword [ebp - 0x20]
xor dword [0x407720], 0x20eb
xor eax, esi
add eax, edi
and dword [0x4076c4], 0x28dc
imul eax, ecx
and ecx, 0x711f
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
mov eax, dword [0x40769c]
add dword [0x407728], eax
mov eax, dword [ebp - 0x24]
mov dword [0x40743c], eax
adc dword [0x40765c], 0x2492
mov eax, dword [ebp - 0x10]
or dword [0x407700], ecx
mov ecx, dword [0x40743c]
not dword [0x407648]
xor eax, esi
adc dword [0x407644], 0x407684
add eax, edi
cmp ecx, eax
je 0x402417
mov eax, dword [0x40743c]
inc ecx
mov eax, dword [eax + 0x18]
and ecx, dword [0x4076dc]
mov dword [ebp - 0x48], eax
add ecx, dword [0x407720]
mov eax, dword [0x40743c]
mov ecx, dword [ebp + 8]
not dword [0x407618]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x58], ecx
mov eax, dword [0x40743c]
mov ecx, dword [0x407694]
sub dword [0x407658], ecx
mov ecx, dword [ebp + 8]
sbb dword [0x407608], 0x407614
add ecx, dword [eax + 0x24]
mov dword [ebp - 0x54], ecx
mov eax, dword [0x40743c]
mov ecx, dword [ebp + 8]
add dword [0x40770c], 0x613
add ecx, dword [eax + 0x1c]
mov dword [0x4076c8], 0x12ef
mov dword [ebp - 0x5c], ecx
mov dword [0x4076d4], 0x3775
jmp 0x4023ea
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp + 8]
and dword [0x4076c4], 0x4076c0
add ecx, dword [eax + ebx*4]
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x3c]
je 0x4023ea
mov dword [0x407698], 0x4ac5
jmp 0x402038
movzx eax, byte [0x4076c0]
sbb eax, dword [0x4076d4]
mov dword [0x4076c0], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [0x4076ac]
mov ecx, dword [ecx]
sub dword [0x40760c], ecx
mov ecx, dword [ebp - 0x1c]
xor eax, esi
and dword [0x407644], 0x40771c
add eax, edi
mov dword [0x407718], 0x1570
cmp ecx, eax
mov dword [0x4076c8], 0x1047
je 0x402417
mov eax, dword [ebp - 0x50]
sbb dword [0x4076cc], 0x407720
test eax, eax
je 0x402423
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x24], eax
sbb eax, eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x20], eax
add dword [0x407614], edx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
adc dword [0x407708], ebx
mov ecx, dword [ebp - 0x14]
mov eax, 0x9dba
xor ax, word [ecx + 0x20]
neg ecx
mov ecx, 0x3f81
add ax, cx
sub dword [0x40760c], edx
movzx eax, ax
sbb dword [0x407720], ecx
mov dword [ebp - 0x40], eax
mov byte [ebp - 1], 0x7d
adc dword [0x407648], ebx
lea eax, [ebp - 1]
mov dword [ebp - 0x28], eax
mov al, byte [ebp - 1]
mov ecx, dword [0x407710]
sbb dword [0x407698], ecx
mov ecx, dword [ebp - 0x28]
xor al, 0x94
add dword [0x407610], 0x407690
add al, 0x18
mov dword [0x407708], 0xe19
mov byte [ecx], al
sbb dword [0x407684], 0x407650
mov dword [ebp - 0x30], 0xbe05e130
adc dword [0x407604], edx
mov dword [ebp - 0x18], 0xbe05e133
dec dword [0x4076d0]
mov eax, dword [ebp - 0x30]
xor eax, esi
add eax, edi
sbb dword [0x40771c], 0x407644
mov dword [ebp - 8], eax
or eax, 0x68bb
mov dword [ebp - 0xc], 0xbe05e6f2
inc dword [0x407654]
mov eax, dword [ebp - 0x30]
add dword [0x40760c], 0x363a
xor eax, esi
add eax, edi
cmp dword [ebp - 0xc], 0xbe05e4c3
mov dword [ebp - 0x28], eax
mov dword [0x40771c], 0x6da5
jne 0x40218e
mov dword [0x407600], 0x2486
cmp eax, 0x40
jae 0x40218e
mov dword [0x40761c], 0xe2a
mov cl, byte [ebp - 1]
mov dword [0x407720], 0x3325
mov byte [ebp + eax - 0xa8], cl
mov dword [0x40770c], 0x79e6
cmp eax, 0x3f
mov dword [0x40764c], 0x614c
jne 0x4022b5
mov dword [0x407648], 0x6565
jmp 0x4021df
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
xor edx, esi
xor ecx, esi
and dword [0x407640], 0x407704
sub edx, ecx
sub edx, edi
add dword [0x40769c], 0x2533
xor edx, esi
mov dword [0x4076d0], 0x643
mov dword [ebp - 0xc], edx
mov dword [0x407698], 0x673b
cmp edx, 0xbe05f9bd
mov dword [0x407724], 0x6e60
jne 0x4022da
mov ecx, dword [ebp - 0x30]
sbb edx, 0x1561
mov edx, dword [ebp - 0x40]
xor ecx, esi
and dword [0x407640], 0x2f22
add ecx, edi
mov dword [0x4076d4], 0x36d0
cmp ecx, edx
mov dword [0x407680], 0x70a0
je 0x4022a7
mov edx, dword [ebp - 0x14]
mov eax, 0x9dba
xor ax, word [edx + ecx*4 + 2]
xor edx, edx
xor edx, dword [0x407748]
mov edx, dword [edx]
and dword [0x4076dc], edx
mov edx, 0x3f81
mov dword [0x407604], 0x4eb1
add ax, dx
movzx eax, ax
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x14]
or dword [0x407708], 0x40771c
movzx eax, word [eax + ecx*4]
neg dword [0x407704]
xor eax, 0x9dba
adc dword [0x407694], 0x407714
add eax, edx
mov edx, 0x1920
mov edx, dword [ebp - 0x68]
mov byte [ebp + edx - 0xa8], al
mov eax, dword [ebp - 0x40]
inc ecx
mov dword [0x407600], 0x3749
cmp ecx, eax
mov dword [0x4076c8], 0x466c
jne 0x402215
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x28]
add edx, ecx
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x24]
xor ecx, esi
add ecx, edi
mov dword [edx], ecx
or dword [0x407650], 0x36b5
lea ecx, [eax - 0x3a98761b]
xor ecx, esi
add dword [ebp - 0x60], ecx
mov dword [0x407680], 0x133b
inc eax
jmp 0x402117
mov dword [0x407618], 0x6c38
cmp dword [ebp - 0xc], 0xbe05e2cf
jne 0x402100
mov dword [0x4076d0], 0x176f
mov dword [ebp - 0xc], 0xbe05f130
jmp 0x4023d1
not dword [0x407710]
mov eax, dword [ebp - 8]
mov dword [0x40768c], 0xf78
mov al, byte [ebp + eax - 0xa8]
mov dword [0x407704], 0x3032
mov cl, byte [ebp - 1]
cmp al, cl
mov dword [0x40771c], 0x36c6
je 0x4023bc
mov eax, dword [ebp - 0xc]
neg ecx
mov ecx, dword [ebp - 0x18]
xor eax, esi
xor dword [0x40768c], 0x407600
xor ecx, esi
mov dword [0x40769c], 0x7320
sub eax, ecx
and dword [0x40770c], 0x7a09
sub eax, edi
adc dword [0x40764c], 0x407614
xor eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
mov al, byte [ebp + eax - 0xa8]
mov cl, byte [ebp - 1]
cmp al, cl
je 0x4023bc
mov eax, dword [ebp - 8]
mov al, byte [ebp + eax - 0xa8]
mov ecx, dword [ebp - 0x20]
cmp al, byte [ecx]
jne 0x4023ea
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
movsx ecx, byte [ecx]
xor eax, esi
add eax, edi
cmp ecx, eax
je 0x4023de
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
xor eax, esi
lea eax, [eax + ecx + 0x3a98761b]
mov dword [ebp - 8], eax
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
xor eax, esi
add eax, edi
jne 0x402307
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
xor eax, esi
add eax, edi
mov dword [ecx], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
xor eax, esi
add eax, edi
cmp ecx, eax
je 0x402411
mov eax, dword [ebp - 0x54]
movzx eax, word [eax + ebx*2]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x64], eax
jmp 0x401fd3
inc ebx
jmp 0x401d4d
mov eax, dword [ebp - 0x10]
xor eax, esi
add eax, edi
jmp 0x402500
mov eax, dword [ebp - 0x64]
add eax, dword [ebp + 8]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x4024a8
mov dword [ebp - 0x38], 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 - 0x38], esp
mov eax, dword [ebp - 0x10]
xor eax, esi
add eax, edi
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
je 0x4024a8
lea eax, [ebp + 0x14]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x38]
add eax, 4
mov ebx, dword [eax]
mov dword [edx + ecx*4], ebx
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 8]
xor ecx, esi
lea ecx, [ecx + edx + 0x3a98761b]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 0x14]
cmp ecx, edx
jne 0x40247a
mov eax, dword [ebp - 0x10]
xor eax, esi
add eax, edi
mov dword [ebp - 0x2c], eax
xor edx, edx
mov ebx, 0x1523
lea eax, [ebp - 0x34]
add edx, dword [eax]
imul ebx, ebx, 0x12
sub ebx, 0x231
dec edx
push edx
inc ebx
pop ecx
inc ecx
call ecx
xor ecx, ecx
inc ecx
push eax
mov esi, 6
mov ecx, 0x2642
imul esi, esi, 7
xor ecx, 0x2642
mov ebx, ecx
mov edx, esp
dec edx
add ebx, 1
add ebx, dword [edx + ebx]
dec ebx
add esi, 0x837a
xor edx, edx
add dword [ebp - 0x2c], ebx
pop ebx
mov eax, dword [ebp - 0x2c]
pop edi
pop esi
pop ebx
leave
ret