Function at 0x401a32
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4c82ed
call fcn.004c7f00
sub esp, 0x8c
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov eax, edx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], eax
mov edi, ecx
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x1c], 6
xor ebx, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x24], 0xa0f0f5eb
mov dword [ebp - 0x20], 0xc09
mov dword [ebp - 0x18], 0x1a
xor esi, esi
inc esi
cmp dword [ebp - 0x18], 0xffffffef
je 0x401b2b
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x28], 0xfffffff8
mov dword [ebp - 0x34], 0xc254e7f1
cmp dword [ebp - 0x2c], ebx
je 0x401aa4
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
imul eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, ecx
setne dl
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], ebx
je 0x401ad6
cmp dword [ebp - 0x18], ebx
mov edx, esi
jne 0x401ad8
mov edx, ebx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
sete cl
mov eax, 0xa52b4b5a
cmp eax, ecx
sbb eax, eax
inc eax
cmp eax, 0xffff
sbb eax, eax
neg eax
imul eax, dword [ebp - 0x2c]
test eax, eax
jne 0x401b00
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x2c], ebx
je 0x401b0e
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x34], ecx
cmp dword [ebp - 0x24], ebx
jne 0x401b2b
dec dword [ebp - 0x18]
jmp 0x401a7d
cmp dword [ebp - 0x18], ebx
je 0x401b3a
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x18]
mov ecx, esi
jne 0x401b3c
mov ecx, ebx
xor eax, eax
cmp ecx, 0x784b52dd
sete al
sub eax, dword [ebp - 0x20]
jne 0x401b53
cmp dword [ebp - 0x1c], ebx
mov edx, ebx
je 0x401b55
mov edx, esi
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x14], 0xfffffffb
push 2
pop edi
push 3
cmp dword [ebp - 0x14], 0xfffffffd
je 0x401ce2
mov dword [ebp - 0x2c], edi
lea ecx, [ebp - 0x84]
call fcn.0043a0bd
mov dword [ebp - 0x24], 0x21cf
cmp dword [ebp - 0x24], 0x222b
jle 0x401c04
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov eax, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x34], edi
mov ecx, eax
sar edi, cl
mov eax, edi
xor eax, ebx
or eax, esi
cdq
push edx
push eax
mov ecx, 0xad9c18
call fcn.00439e95
inc ebx
cmp ebx, 0xc3f
jl 0x401bb2
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x2ffe
push 0
pop ebx
mov edi, dword [ebp - 0x1c]
jl 0x401ba8
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x75d
jl 0x401ba3
inc esi
cmp esi, 0x25ca
jl 0x401b9e
push ebx
call dword [0xadd4a8]
xor esi, esi
inc esi
push 2
pop edi
mov dword [ebp - 0x1c], 0x278c
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x24], 0x2137
jge 0x401c26
mov edx, 0xabbe84
mov ecx, 0xad9c18
call fcn.0043c71b
or dword [ebp - 4], 0xffffffff
jmp 0x401c58
mov dword [ebp - 0x18], ebx
jmp 0x401c70
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x84]
mov dword [eax + ecx*4], 0xd72d
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x401c5d
mov dword [ebp - 0x18], ebx
jmp 0x401c8c
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x98], 0xd2f55126
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x401c7b
cmp dword [ebp - 0x2c], ebx
je 0x401cc7
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setge dl
xor ecx, ecx
mov eax, dword [ebp - 0x84]
cmp dword [eax + 4], edx
setl cl
cmp ecx, dword [ebp - 0x14]
mov eax, esi
je 0x401cc9
mov eax, ebx
mov dword [ebp - 0x98], eax
lea ecx, [ebp - 0x84]
call fcn.0043a18f
inc dword [ebp - 0x14]
jmp 0x401b72
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x54], eax
mov dword [ebp + 0xc], 0xffffffff
lea ecx, [ebp - 0x64]
call fcn.0043a0bd
push 4
lea ecx, [ebp - 0x90]
call fcn.0043a0bd
mov dword [ebp + 0xc], 0x6200d40a
mov dword [ebp + 0xc], ebx
jmp 0x401d2c
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x64]
mov dword [eax + ecx*4], 0x42a43d95
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 3
jl 0x401d1c
mov dword [ebp + 0xc], ebx
jmp 0x401d4a
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x90]
mov dword [eax + ecx*4], 0xda2a0c0e
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 4
jl 0x401d37
mov dword [ebp - 0x24], 0x6a56
cmp dword [ebp - 0x24], 0x6ad2
jle 0x401dac
mov dword [ebp - 0x1c], ebx
mov dword [ebp + 0xc], ebx
mov dword [ebp - 0x20], 0x4155
mov edi, ebx
mov ebx, dword [ebp + 0xc]
mov eax, ebx
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xad9c18
call fcn.00439e95
inc edi
cmp edi, 0x517c
jl 0x401d72
mov eax, dword [ebp - 0x1c]
add ebx, eax
mov dword [ebp + 0xc], ebx
dec dword [ebp - 0x20]
push 0
pop ebx
jne 0x401d6d
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x44be
jl 0x401d63
push 2
pop edi
mov dword [ebp + 0xc], 0xfffffff2
jmp 0x401e74
mov dword [ebp - 0x14], ebx
jmp 0x401dc7
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x44], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x401dbd
mov dword [ebp - 0x3c], edi
cmp dword [ebp - 0x3c], ebx
jl 0x401e71
mov ebx, dword [ebp - 0x64]
mov edi, dword [ebp - 0x90]
mov dword [ebp - 0x1c], 0xbc21b07f
mov dword [ebp - 0x20], 0x2589d389
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp + 0xc]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp + 0xc]
sub edx, eax
neg edx
sbb edx, edx
add edx, 0xffff9555
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x3c]
sub edx, eax
xor ecx, ecx
cmp edx, dword [ebx + 8]
setge cl
mov edx, dword [ebp - 0x44]
add edx, ecx
mov dword [edi + 4], edx
mov ecx, dword [ebp - 0x3c]
neg edx
mov eax, dword [ebp - 0x64]
mov dword [eax + ecx*4], edx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp + 0xc]
sub edx, eax
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x20]
sub edx, eax
imul edx, dword [ebp - 0x20]
mov eax, dword [ebp + 0xc]
xor ecx, ecx
cmp edx, eax
setle cl
imul ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], ecx
dec dword [ebp - 0x3c]
jns 0x401de2
xor ebx, ebx
push 2
pop edi
dec dword [ebp + 0xc]
cmp dword [ebp + 0xc], 0xffffffec
jg 0x401db8
mov dword [ebp - 4], edi
cmp dword [ebp - 0x24], 0x69da
jge 0x401e99
mov edx, 0xabbee8
mov ecx, 0xad9c18
call fcn.0043c71b
or dword [ebp - 4], 0xffffffff
jmp 0x401ed1
mov byte [ebp + 0xf], bl
cmp byte [ebp + 0xf], 0
je 0x401eea
push ebx
push 0x1cfd
push ebx
push ebx
push ebx
push ebx
call dword [0xadd2e8]
lea ecx, [ebp - 0x90]
call fcn.0043a18f
lea ecx, [ebp - 0x64]
call fcn.0043a18f
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x4c], eax
push edi
lea ecx, [ebp - 0x78]
call fcn.0043a0bd
mov dword [ebp + 0xc], 0x490c4d8e
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x48], 0x87a912e7
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x28], 0xfffffff6
mov dword [ebp + 0xc], ebx
jmp 0x401f3c
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x78]
mov dword [eax + ecx*4], 0xd3df
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], edi
jl 0x401f2c
mov dword [ebp + 0xc], esi
cmp dword [ebp + 0xc], ebx
jl 0x4020f7
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], 0x71c097bc
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x30], 0x1241a59c
mov dword [ebp - 0x14], ebx
jmp 0x401f7f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6c], 0x1372625a
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x401f71
mov dword [ebp - 0x14], 0x724b
cmp dword [ebp - 0x14], 0x73ee
jle 0x401fd1
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x30], ebx
lea eax, [ebx + edi]
add eax, esi
cdq
push edx
push eax
mov ecx, 0xad9c18
call fcn.00439e95
inc ebx
cmp ebx, 0x28f2
jl 0x401f9b
inc edi
cmp edi, 0x69ee
push 0
pop ebx
jl 0x401f98
inc esi
cmp esi, 0x37cc
jl 0x401f96
xor esi, esi
inc esi
push 2
pop edi
inc dword [ebp - 0x1c]
mov dword [ebp - 0x2c], 0xfffffffe
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, ecx
setg dl
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, edx
setge cl
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp + 0xc]
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
mov eax, dword [ebp - 0x78]
cmp ecx, dword [eax]
setle dl
xor ecx, ecx
cmp edx, 0xfffffffa
setg cl
sub ecx, 0x3cfc
mov eax, dword [ebp - 0x24]
xor ebx, ebx
cmp eax, ecx
setge bl
sub ebx, dword [ebp - 0x24]
neg ebx
sbb ebx, ebx
neg ebx
xor edx, edx
cmp ebx, 0xffffffff
setne dl
mov eax, dword [ebp + 0xc]
xor ecx, ecx
cmp edx, eax
setl cl
imul ecx, dword [ebp - 0x28]
xor ebx, ebx
test ecx, ecx
je 0x40205d
cmp dword [ebp - 0x2c], ebx
mov ecx, esi
jne 0x40205f
mov ecx, ebx
mov eax, dword [ebp - 0x58]
xor edx, edx
cmp ecx, eax
setne dl
mov dword [ebp - 0x6c], edx
xor ecx, ecx
test edx, edx
sete cl
mov eax, dword [ebp - 0x24]
sub eax, ecx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], ebx
jne 0x40208d
cmp dword [ebp - 0x68], ebx
mov eax, ebx
je 0x40208f
mov eax, esi
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], 4
cmp dword [ebp - 0x14], 0x6ebe
jge 0x4020b1
mov edx, 0xabbf38
mov ecx, 0xad9c18
call fcn.0043c71b
or dword [ebp - 4], 0xffffffff
jmp 0x4020ef
dec dword [ebp + 0xc]
jmp 0x401f44
lea ecx, [ebp - 0x78]
call fcn.0043a18f
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp + 8]
cmp dword [ecx], ebx
je 0x402111
mov eax, dword [edx]
sub eax, dword [ecx]
mov ecx, esi
jne 0x402113
mov ecx, ebx
xor eax, eax
cmp ecx, 0x784b52dd
sete al
sub eax, dword [edx]
jne 0x402129
mov eax, dword [ebp - 0x54]
cmp dword [eax], ebx
je 0x40212b
mov ebx, esi
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
xor ecx, ecx
cmp ebx, eax
setne cl
mov eax, dword [ebp - 0x50]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret