Function at 0x4023af
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4be9bb
call fcn.004be5b0
sub esp, 0xd0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x18], 0xe1e87df2
mov dword [ebp - 0x1c], 6
xor ebx, ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
xor edi, edi
inc edi
mov dword [ebp - 0x14], edi
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ebx
jmp 0x402490
push 4
lea ecx, [ebp - 0x90]
call fcn.004088bc
mov dword [ebp - 0x2c], 0x495761be
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], ebx
jmp 0x402426
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x90]
mov dword [eax + ecx*4], 8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x402413
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x78]
xor ecx, ecx
test eax, eax
setne cl
neg ecx
cmp ecx, 0xffff
je 0x40246a
mov eax, dword [ebp - 0x18]
mov edx, 0x5f07c70a
mov dword [ebp + eax*4 - 0x78], edx
xor eax, eax
mov ecx, dword [ebp - 0x90]
cmp dword [ecx], edx
setne al
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ecx + 0xc]
mov ecx, edi
jg 0x40246c
mov ecx, ebx
xor eax, eax
test ecx, ecx
setle al
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x90]
call fcn.0040898e
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jle 0x4023f7
mov dword [ebp - 0x18], 0x17571177
mov dword [ebp - 0x18], 0xffffffe2
jmp 0x4024e9
mov dword [ebp - 0x14], 0x3245f1db
mov dword [ebp - 0x14], ebx
jmp 0x4024e0
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], bl
je 0x4024cf
push 0x10c2
push 0xcb9
push ebx
call dword [fcn.00ae0568]
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], bl
je 0x4024dd
call dword [fcn.00ae056c]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x16
jl 0x4024b6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 8
jge 0x4024aa
cmp byte [esi], bl
je 0x402a3a
mov dword [ebp - 0x14], 0x45c7
cmp dword [ebp - 0x14], 0x46a5
jle 0x40255f
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x1c], ebx
xor eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xc4]
call fcn.00401a68
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x402528
mov eax, dword [eax]
push eax
call fcn.004a8e07
pop ecx
push ebx
push edi
lea ecx, [ebp - 0xc4]
call fcn.00408e6a
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x74ab
jl 0x40250e
inc esi
cmp esi, 0x7f6
jl 0x402509
push 0x1f67
push ebx
call dword [0xae0550]
mov eax, 0x847dfa86
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x14], 0x428b
jge 0x402587
push 0xab8100
call fcn.004a8e07
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4025b0
movdqa xmm0, xmmword [0xacb950]
movdqu xmmword [ebp - 0xac], xmm0
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
push dword [ebp - 0x24]
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0xac]
push eax
push ebx
lea ecx, [ebp - 0x40]
call fcn.0040b910
mov dword [ebp - 0x1c], 0xfffffff9
mov dword [ebp - 0x14], ebx
jmp 0x4025fd
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x34], 0x63abefa0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4025ef
mov eax, dword [ebp - 0x40]
mov dword [eax], ebx
cmp dword [eax], 3
jg 0x402839
mov dword [ebp - 0x18], 0xab274bf9
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x28], 0x40e708be
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x40263f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x5c], 0x3531
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x402631
mov dword [ebp - 0x14], 0x40d3
cmp dword [ebp - 0x14], 0x42de
jle 0x4026b3
push ebx
push ebx
call dword [0xae0558]
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x1c], ebx
and eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xdc]
call fcn.00401a68
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x40267e
mov eax, dword [eax]
push eax
call fcn.004a8e07
pop ecx
push ebx
push edi
lea ecx, [ebp - 0xdc]
call fcn.00408e6a
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x2157
jl 0x402664
inc esi
cmp esi, 0x3d55
jl 0x40265f
push ebx
push ebx
push ebx
push ebx
call dword [0xae0380]
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], 3
jg 0x4027eb
mov dword [ebp - 0x28], 0x2703d9b9
mov dword [ebp - 0x28], 0x62daab72
mov dword [ebp - 0x28], 0x452a26f3
mov dword [ebp - 0x54], 0x9d44c039
mov dword [ebp - 0x54], 0x1637c1d6
mov dword [ebp - 0x1c], 0x2de6
cmp dword [ebp - 0x1c], 0x31a8
jle 0x40271d
mov esi, ebx
mov edi, ebx
mov eax, edi
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xadd238
call fcn.00408691
inc edi
cmp edi, 0x65ff
jl 0x4026f7
inc esi
cmp esi, 0x3b69
jl 0x4026f5
xor edi, edi
inc edi
mov dword [ebp - 0x2c], 0xfffffff8
mov dword [ebp - 4], 2
cmp dword [ebp - 0x1c], 0x2dcb
jge 0x402743
mov edx, 0xab818c
mov ecx, 0xadd238
call fcn.0040af1a
or dword [ebp - 4], 0xffffffff
jmp 0x40276c
inc dword [ebp - 0x58]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x18]
sub edx, eax
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp eax, ecx
setl dl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, 0x506ed55c
setg cl
cmp ecx, edi
sbb eax, eax
neg eax
xor edx, edx
cmp eax, 0x254f8d3
setg dl
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x58]
xor ecx, ecx
cmp edx, eax
setle cl
push 0xfffffffffffffffd
pop eax
sub eax, ecx
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x18]
jmp 0x4026b6
mov dword [ebp - 4], 4
cmp dword [ebp - 0x14], 0x3def
jge 0x402806
push 0xab8148
call fcn.004a8e07
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x40282f
mov eax, dword [ebp - 0x40]
inc dword [eax]
jmp 0x402608
cmp dword [ebp - 0x30], ebx
je 0x40298d
mov dword [ebp - 0x18], 0x3c1f
cmp dword [ebp - 0x18], 0x3e5f
jle 0x4028bb
mov edi, ebx
mov dword [ebp - 0x14], ebx
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], edi
mov ecx, esi
mov esi, edi
shl esi, cl
mov edi, ebx
mov eax, esi
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
mov ecx, 0xadd238
call fcn.00408691
inc edi
cmp edi, 0x37a4
jl 0x40286a
mov esi, dword [ebp - 0x1c]
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x1a8e
mov edi, dword [ebp - 0x14]
jl 0x40285c
inc edi
mov dword [ebp - 0x14], edi
cmp edi, 0x5770
jl 0x402857
push 0x54e
push ebx
push ebx
push ebx
push ebx
push 0x981
call dword [0xae03c8]
xor edi, edi
inc edi
mov dword [ebp - 0x1c], 0x49f7fae0
mov dword [ebp - 4], 6
cmp dword [ebp - 0x18], 0x3b85
jge 0x4028e1
mov edx, 0xab81d0
mov ecx, 0xadd238
call fcn.0040af1a
or dword [ebp - 4], 0xffffffff
jmp 0x40290a
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x1c], edi
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
add ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, ecx
setg dl
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
sub eax, 4
xor ecx, ecx
cmp eax, 0x28a2
setl cl
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp eax, ecx
setl dl
xor ecx, ecx
cmp edx, 0xf963
setge cl
xor edx, edx
mov eax, dword [ebp - 0x40]
cmp ecx, dword [eax]
sete dl
sub edx, 0xb1d7
mov ecx, dword [ebp - 0x30]
add ecx, edx
mov eax, dword [ebp - 0x40]
sub ecx, dword [eax + 4]
neg ecx
sbb ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0x459cadfd
setg al
mov dword [ebp - 0x44], eax
jmp 0x402a2c
mov dword [ebp - 0x1c], 0xf1b
push 3
lea ecx, [ebp - 0x68]
call fcn.004088bc
mov dword [ebp - 0x18], 0xfffffffa
mov dword [ebp - 0x14], ebx
jmp 0x4029ba
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x68]
mov dword [eax + ecx*4], 4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x4029aa
mov eax, dword [ebp - 0x44]
xor ecx, ecx
mov eax, dword [ebp - 0x40]
cmp dword [eax], edi
setne cl
mov eax, dword [ebp - 0x68]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x30], 0x99b5
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov eax, dword [ebp - 0x68]
cmp dword [eax], ebx
sete cl
mov dword [ebp - 0x1c], edi
xor edx, edx
cmp ecx, edi
setne dl
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, edx
setg cl
mov eax, dword [ebp - 0x40]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
lea ecx, [ebp - 0x68]
call fcn.0040898e
lea ecx, [ebp - 0x40]
call fcn.0040898e
call dword [fcn.00ae056c]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], 0xfffffff9
mov dword [ebp - 0x14], 0xe8
cmp dword [ebp - 0x14], 0x3c8
jle 0x402a9d
push 0x2644
call dword [0xae0498]
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x24], esi
mov ebx, 0x235
mov eax, edi
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xadd238
call fcn.00408691
dec esi
dec ebx
jne 0x402a6e
mov esi, dword [ebp - 0x1c]
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x3201
jl 0x402a66
inc edi
cmp edi, 0x6a1c
jl 0x402a61
mov dword [ebp - 0x24], 0xc9995890
mov dword [ebp - 4], 8
cmp dword [ebp - 0x14], 0xfffffdaf
jge 0x402ac3
mov edx, 0xab8220
mov ecx, 0xadd238
call fcn.0040af1a
or dword [ebp - 4], 0xffffffff
jmp 0x402ae9
mov dword [ebp - 0x24], 0x68939f5f
push 3
lea ecx, [ebp - 0x9c]
call fcn.004088bc
mov dword [ebp - 0x1c], 0x84257392
mov dword [ebp - 0x14], ebx
jmp 0x402b1c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x9c]
mov dword [eax + ecx*4], 0x6b6cd333
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x402b09
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
je 0x402b8b
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x18], 0x18
jmp 0x402b83
push 2
lea ecx, [ebp - 0x84]
call fcn.004088bc
mov dword [ebp - 0x24], 0xa062b000
mov dword [ebp - 0x14], ebx
jmp 0x402b62
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x84]
mov dword [eax + ecx*4], 2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x402b4f
mov eax, dword [ebp - 0x84]
mov dword [eax + 4], 0x1a
lea ecx, [ebp - 0x84]
call fcn.0040898e
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x12
jne 0x402b36
jmp 0x402baa
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x402baa
push ebx
push 0x114e
push 0x20d2
push 0x164
call dword [0xae0048]
inc dword [ebp - 0x1c]
lea ecx, [ebp - 0x9c]
call fcn.0040898e
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret