Function at 0x442e94
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4bfc95
call fcn.004bf4b8
sub esp, 0x90
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x2c], 0x21bf
xor ebx, ebx
cmp dword [ebp - 0x2c], 0x2421
jle 0x442f24
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], 0x4d91
mov edi, ebx
mov dword [ebp - 0x20], edi
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x34], esi
mov ecx, edi
sar esi, cl
mov edi, ebx
mov eax, esi
xor eax, edi
cdq
push edx
push eax
mov ecx, 0xad0518
call fcn.00409e1b
inc edi
cmp edi, 0x7ffa
jl 0x442ee1
mov edi, dword [ebp - 0x20]
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x671c
mov esi, dword [ebp - 0x18]
jl 0x442ed8
mov esi, dword [ebp - 0x3c]
add dword [ebp - 0x18], esi
dec dword [ebp - 0x24]
jne 0x442ed0
inc esi
mov dword [ebp - 0x3c], esi
cmp esi, 0x4dac
jl 0x442ec6
mov dword [ebp - 0x18], 8
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x2c], 0x1fd1
jge 0x442f46
mov edx, 0xab9de4
mov ecx, 0xad0518
call fcn.0040ca55
or dword [ebp - 4], 0xffffffff
jmp 0x442f6c
mov dword [ebp - 0x2c], 0x2733582f
mov dword [ebp - 0x30], 0x7c10977a
mov dword [ebp - 0x30], 0x8100c430
xor esi, esi
inc esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], 0x7ee39f3f
mov dword [ebp - 0x30], 0x3f6085e0
mov dword [ebp - 0x30], 0x13d0bb94
push 2
lea ecx, [ebp - 0x54]
call fcn.0040a170
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x24], 0xb11f
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x20], ebx
jmp 0x442fc8
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x54]
mov dword [eax + ecx*4], 0xfffffff9
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x442fb8
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], eax
jge 0x442fe6
mov eax, dword [ebp - 0x24]
dec dword [ebp - 0x24]
test eax, eax
jne 0x442fed
cmp dword [ebp - 0x18], ebx
mov ecx, ebx
je 0x442fef
mov ecx, esi
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
xor edx, edx
cmp ecx, 0xe07e
setle dl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, edx
setge cl
mov edx, dword [ebp - 0x14]
sub edx, ecx
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp edx, eax
setge cl
add ecx, 7
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x54]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x54]
call fcn.0040a242
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x44323e
mov dword [ebp - 0x20], 9
mov dword [ebp - 0x30], 0x15912491
mov dword [ebp - 0x34], 0x117a
mov dword [ebp - 0x30], 0xab9e30
cmp dword [ebp - 0x34], 0x150f
jle 0x4430a8
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x2c], ebx
or eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0x6c]
call fcn.00401961
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x443080
mov eax, dword [eax]
push eax
call fcn.004a9d17
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x6c]
call fcn.0040a7b2
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0x189a
jl 0x443069
inc edi
cmp edi, 0x5aa
jl 0x443064
mov dword [ebp - 0x20], 0xfffffff8
cmp dword [ebp - 0x20], 0xd
jg 0x4431bd
mov dword [ebp - 0x18], 0xfffffffb
mov dword [ebp - 0x38], 0x1449c9fb
mov dword [ebp - 0x38], 0xffff
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], 0x10
jne 0x4431b2
mov byte [ebp - 0x19], bl
mov dword [ebp - 0x14], 0x50b9
cmp dword [ebp - 0x14], 0x53f7
jle 0x443155
mov edi, ebx
mov dword [ebp - 0x3c], ebx
mov eax, edi
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], 0x32fb
mov edi, ebx
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x84]
call fcn.00401961
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x44311d
mov eax, dword [eax]
push eax
call fcn.004a9d17
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x84]
call fcn.0040a7b2
inc edi
cmp edi, 0x3fda
mov eax, dword [ebp - 0x24]
jl 0x443101
dec eax
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x2c]
jne 0x4430ff
mov edi, dword [ebp - 0x3c]
inc edi
mov dword [ebp - 0x3c], edi
cmp edi, 0x68c0
jl 0x4430f3
cmp byte [ebp - 0x19], 0
je 0x443166
push 0x7a6
call dword [0xad32e4]
mov dword [ebp - 4], 2
cmp dword [ebp - 0x14], 0x4fcd
jge 0x443181
push 0xab9e4c
call fcn.004a9d17
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4431aa
inc dword [ebp - 0x18]
jmp 0x4430d1
dec dword [ebp - 0x38]
inc dword [ebp - 0x20]
jmp 0x4430af
mov dword [ebp - 4], 4
cmp dword [ebp - 0x34], 0x1138
jge 0x4431d6
push dword [ebp - 0x30]
call fcn.004a9d17
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4431ff
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x443213
push 0x26b9
call dword [0xad3080]
push 0x1c59
push ebx
push 0x17ef
push 0xc6
push 0x9ac
push ebx
push 0x8c5
push 0x715
push 0x331
call dword [0xad3458]
push esi
lea ecx, [ebp - 0x48]
call fcn.0040a170
mov dword [ebp - 0x14], ebx
jmp 0x443258
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x44324c
mov dword [ebp - 0x14], ebx
jmp 0x443270
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x28], 0xfffffff7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x443262
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], ebx
jl 0x44346c
mov dword [ebp - 0x14], 0x7d214c40
mov dword [ebp - 0x20], 0xe5a9864b
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x443428
mov dword [ebp - 0x24], 3
mov dword [ebp - 0x30], 0x87c837e0
mov dword [ebp - 0x34], 0xe26a8acd
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], ebx
jl 0x443420
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x443397
mov dword [ebp - 0x38], 0x7c98
cmp dword [ebp - 0x38], 0x7fd8
jle 0x44332b
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x34], ebx
and eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0x9c]
call fcn.00401961
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x443300
mov eax, dword [eax]
push eax
call fcn.004a9d17
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x9c]
call fcn.0040a7b2
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp eax, 0x9e4
jl 0x4432e6
inc edi
cmp edi, 0x63d6
jl 0x4432e1
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov dword [ebp - 4], 6
cmp dword [ebp - 0x38], 0x7972
jge 0x443355
push 0xab9e80
call fcn.004a9d17
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x44337e
mov ecx, dword [ebp - 0x24]
xor edx, edx
mov eax, dword [ebp - 0x48]
cmp dword [eax + ecx*4], ebx
setne dl
mov dword [ebp - 0x20], edx
dec dword [ebp - 0x18]
jmp 0x4432c6
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + ecx*4]
add eax, 0x1932e3ca
je 0x4433e7
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x48]
cmp dword [eax + ecx*4], ebx
jne 0x4433be
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov ecx, 0x359a7032
sub ecx, eax
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setle dl
neg edx
je 0x4433e7
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x48]
cmp dword [eax + ecx*4], ebx
je 0x4433e7
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x14]
sub edx, 0x7438e213
sub edx, dword [ebp - 0x30]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setne cl
mov edx, dword [ebp - 0x20]
imul edx, ecx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x34], ecx
dec dword [ebp - 0x24]
jmp 0x4432b3
dec dword [ebp - 0x14]
jmp 0x443292
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jl 0x443464
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x14], ebx
jne 0x443443
cmp dword [ebp - 0x28], ebx
je 0x443445
mov ebx, esi
mov edx, dword [ebp - 0x28]
imul ecx, ebx, 0xac01
xor ebx, ebx
mov eax, dword [ebp - 0x48]
cmp dword [eax + edx*4], ecx
sete bl
mov dword [ebp - 0x14], ebx
dec dword [ebp - 0x20]
push 0
pop ebx
jns 0x443430
dec dword [ebp - 0x28]
jmp 0x443278
lea ecx, [ebp - 0x48]
call fcn.0040a242
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret