Function at 0x448ee9
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4affae
call fcn.004af828
sub esp, 0x88
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x70], edx
mov esi, ecx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x30], 0x1928c176
xor ebx, ebx
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], bl
je 0x448fac
mov dword [ebp - 0x48], 0x7ec0
cmp dword [ebp - 0x48], 0x8135
jle 0x448f5b
mov esi, ebx
mov edi, ebx
mov eax, esi
mov ecx, edi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xabdd58
call fcn.00410d32
inc edi
cmp edi, 0x59eb
jl 0x448f33
inc esi
cmp esi, 0xd75
jl 0x448f31
mov esi, dword [ebp - 0x3c]
push ebx
push ebx
call dword [0xac1320]
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x48], 0x7e47
jge 0x448f80
push 0xaab748
push 0xabdd58
call fcn.00413ac6
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x448fac
mov dword [ebp - 0x30], ebx
xor edi, edi
inc edi
cmp dword [ebp - 0x30], 0xfffffffa
je 0x448fe8
mov dword [ebp - 0x20], 0xfffffff8
mov dword [ebp - 0x20], ebx
jmp 0x448fdd
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x448fda
push edi
push ebx
push 0x1027
call dword [0xac10b0]
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xffffffe4
jl 0x448fc4
dec dword [ebp - 0x30]
jmp 0x448fb2
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x34], 6
mov dword [ebp - 0x30], 0x740
mov dword [ebp - 0x24], ebx
cmp dword [ebp - 0x24], 0xfffffff9
jg 0x4494b5
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x38], 0xdc7555b7
mov dword [ebp - 0x20], 0xb3ae5d5e
mov dword [ebp - 0x4c], 0xf7a0211e
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x38], ebx
cmp dword [ebp - 0x38], 3
jg 0x449338
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], 0x4983ca30
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x28], 3
cmp dword [ebp - 0x28], ebx
jl 0x449330
mov dword [ebp - 0x2c], 0x6df80008
mov dword [ebp - 0x1c], ebx
jmp 0x449084
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x6c], 0x7e09fa0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x449076
mov dword [ebp - 0x18], 0x64f1
cmp dword [ebp - 0x18], 0x6784
jle 0x4490dd
mov edi, ebx
mov esi, ebx
mov ecx, ebx
mov dword [ebp - 0x1c], ebx
mov eax, esi
cdq
idiv ecx
mov eax, edi
sub eax, edx
cdq
push edx
push eax
mov ecx, 0xabdd58
call fcn.00410d32
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x2fb9
jl 0x4490a3
inc esi
cmp esi, 0x3d99
jl 0x44909e
inc edi
cmp edi, 0x66ea
jl 0x44909c
xor edi, edi
inc edi
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x4490ed
push ebx
call dword [0xac10a4]
mov dword [ebp - 4], 2
cmp dword [ebp - 0x18], 0x63ca
jge 0x44910e
push 0xaab7d0
push 0xabdd58
call fcn.00413ac6
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x44913d
mov eax, dword [ebp - 0x28]
cmp dword [ebp + eax*4 - 0x60], ebx
jne 0x44916e
mov eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x60]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
sub eax, 2
neg eax
sbb eax, eax
inc eax
sub eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x58]
xor ebx, ebx
cmp eax, ecx
setg bl
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp ebx, eax
setl dl
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, dword [ebp - 0x38]
je 0x449308
mov dword [ebp - 0x34], 4
mov dword [ebp - 0x20], 0xfffffff6
mov dword [ebp - 0x18], 0x26f36103
mov dword [ebp - 0x50], 0x911df381
xor esi, esi
cmp dword [ebp - 0x2c], esi
jne 0x449209
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x24]
neg ecx
sbb ecx, ecx
neg ecx
add ecx, 0xffffcf0f
mov eax, dword [ebp - 0x34]
xor edx, edx
cmp ecx, eax
setle dl
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x40], eax
je 0x449209
cmp dword [ebp - 0x2c], esi
mov eax, esi
je 0x44920b
mov eax, edi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x60]
xor ecx, ecx
cmp eax, 0xc6c2
setl cl
mov eax, dword [ebp - 0x58]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x34]
xor ecx, ecx
cmp eax, edx
setle cl
sub ecx, 0xcc6b
je 0x449240
cmp dword [ebp - 0x34], esi
jne 0x449245
cmp dword [ebp - 0x24], esi
je 0x449247
mov esi, edi
mov dword [ebp - 0x20], esi
imul eax, dword [ebp - 0x20], 0xe505
test eax, eax
je 0x449258
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x18]
xor edx, edx
cmp eax, ecx
setge dl
mov eax, dword [ebp - 0x24]
xor ebx, ebx
cmp eax, edx
setl bl
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, ebx
setge cl
mov dword [ebp - 0x1c], ecx
xor ebx, ebx
cmp dword [ebp - 0x18], ebx
jne 0x4492a0
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x64]
dec eax
neg eax
sbb eax, eax
inc eax
cmp dword [ebp - 0x20], eax
mov ecx, ebx
jle 0x4492a2
mov ecx, edi
xor eax, eax
cmp ecx, 0xffffffff
setl al
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
neg eax
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x6c]
jl 0x4492c2
cmp dword [ebp - 0x64], ebx
mov eax, edi
jne 0x4492c4
mov eax, ebx
cmp eax, dword [ebp - 0x4c]
jne 0x4492d0
cmp dword [ebp - 0x68], ebx
mov eax, ebx
je 0x4492d2
mov eax, edi
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0x287b8352
setl cl
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x60], ecx
jmp 0x449328
xor ebx, ebx
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], bl
je 0x449328
push ebx
push 0x1bfd
push 0x1380
push 0x178
call dword [0xac109c]
dec dword [ebp - 0x28]
jmp 0x449061
inc dword [ebp - 0x38]
jmp 0x44903f
mov dword [ebp - 0x30], ebx
mov esi, dword [ebp - 0x3c]
cmp dword [ebp - 0x30], 0xfffffff5
jne 0x4494ad
mov dword [ebp - 0x18], 0x4e76
cmp dword [ebp - 0x18], 0x5127
jle 0x449385
mov esi, ebx
mov edi, ebx
mov eax, edi
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xabdd58
call fcn.00410d32
inc edi
cmp edi, 0x72fe
jl 0x44935c
inc esi
cmp esi, 0x78f1
jl 0x44935a
xor edi, edi
inc edi
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], 7
mov dword [ebp - 4], 4
cmp dword [ebp - 0x18], 0x4afe
jge 0x4493ad
push 0xaab810
push 0xabdd58
call fcn.00413ac6
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4493dc
push 4
lea ecx, [ebp - 0x7c]
call fcn.00411076
mov dword [ebp - 0x2c], ebx
jmp 0x4493fb
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x7c]
mov dword [eax + ecx*4], 0xc5172592
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 4
jl 0x4493eb
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x38]
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x30]
xor ebx, ebx
cmp ecx, eax
setle bl
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setg dl
add ebx, edx
cmp ebx, dword [ebp - 0x24]
je 0x44943d
xor ebx, ebx
cmp dword [ebp - 0x44], ebx
je 0x44943f
mov ecx, edi
jmp 0x449441
xor ebx, ebx
mov ecx, ebx
mov eax, dword [ebp - 0x4c]
sub ecx, eax
cmp dword [ebp - 0x1c], ecx
jle 0x449452
cmp dword [ebp - 0x40], ebx
mov ecx, ebx
je 0x449454
mov ecx, edi
mov eax, dword [ebp - 0x4c]
imul eax, ecx
imul eax, eax, 0xf552
test eax, eax
jne 0x44946b
cmp dword [ebp - 0x30], ebx
mov eax, ebx
je 0x44946d
mov eax, edi
xor edx, edx
cmp eax, 0x7599
setl dl
neg edx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [ebp - 0x34]
cmp ecx, dword [ebp - 0x1c]
je 0x44948e
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x7c]
mov dword [eax + 4], ecx
lea ecx, [ebp - 0x7c]
call fcn.00411148
dec dword [ebp - 0x30]
jmp 0x44933e
dec dword [ebp - 0x24]
jmp 0x44900a
mov dword [ebp - 0x18], 0x83c7730f
mov dword [ebp - 0x50], 0x425a80e3
mov dword [ebp - 0x40], 0x715c
mov dword [ebp - 0x44], 0x5f42
cmp dword [ebp - 0x44], 0x5fe0
jle 0x449529
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x18], ebx
add eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x94]
call fcn.00401c4d
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4494fb
mov eax, dword [eax]
push eax
call fcn.00496907
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x94]
call fcn.004116f7
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x1196
jl 0x4494e1
inc esi
cmp esi, 0x58fd
jl 0x4494dc
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x18], 0x82bdb979
mov dword [ebp - 4], 6
cmp dword [ebp - 0x44], 0x5ee7
jge 0x44954b
push 0xaab8a4
call fcn.00496907
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x449577
mov dword [ebp - 0x18], 0x5f8d9a2b
mov dword [ebp - 0x18], 0x75ee4c20
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x18], 0xffffffff
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
imul eax, dword [ebp - 0x18], 0xb16a
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov dword [esi], ebx
jmp 0x4495c3
mov ecx, dword [esi]
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
or dword [eax + ecx*4], 0xffffffff
inc dword [esi]
cmp dword [esi], edi
jl 0x4495b6
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret