Function at 0x4894e5
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4aaf07
call fcn.004a9d98
sub esp, 0xe0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x28], 0x7719
xor ebx, ebx
xor esi, esi
inc esi
cmp dword [ebp - 0x28], 0x773d
jle 0x4895a6
mov edi, ebx
mov dword [ebp - 0x1c], edi
mov eax, ebx
mov dword [ebp - 0x14], ebx
mov edx, ebx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edi
mov ecx, eax
mov eax, edi
sar eax, cl
mov dword [ebp - 0x20], eax
mov edi, ebx
and eax, edx
mov dword [ebp - 0x18], eax
or eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xa4]
call fcn.00401a03
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x489553
mov eax, dword [eax]
push eax
call fcn.004945f7
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xa4]
call fcn.0043e80f
inc edi
cmp edi, 0x13a7
mov eax, dword [ebp - 0x18]
jl 0x489539
mov edx, dword [ebp - 0x24]
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0x7a7c
mov eax, dword [ebp - 0x20]
jl 0x489532
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x4491
mov edi, dword [ebp - 0x1c]
jl 0x489521
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x64d1
jl 0x48951c
mov dword [ebp - 0x24], 0x5c7a00f4
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x28], 0x7563
jge 0x4895c4
push 0xac7248
call fcn.004945f7
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4895ed
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x28], 0xe4a6f444
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x1c], 8
mov dword [ebp - 0x30], 0x99e885dc
mov dword [ebp - 0x20], 0xf2d6273
mov dword [ebp - 0x2c], 0xbae5
mov dword [ebp - 0x18], 0x53b2
cmp dword [ebp - 0x18], 0x5442
jle 0x489668
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x54], ebx
mov eax, ebx
and eax, esi
xor eax, edi
cdq
push edx
push eax
mov ecx, 0xad8758
call fcn.0043e31e
inc ebx
cmp ebx, 0x298d
jl 0x489634
inc esi
cmp esi, 0x7b88
push 0
pop ebx
jl 0x489631
inc edi
cmp edi, 0x23d8
jl 0x48962f
xor esi, esi
inc esi
push 3
lea ecx, [ebp - 0x7c]
call fcn.0043e433
push 2
pop edi
mov dword [ebp - 4], edi
cmp dword [ebp - 0x18], 0x5107
jge 0x489690
mov edx, 0xac7284
mov ecx, 0xad8758
call fcn.0043fcc4
or dword [ebp - 4], 0xffffffff
jmp 0x4896bc
mov dword [ebp - 0x18], ebx
jmp 0x4896cb
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x40], esi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x4896c1
mov dword [ebp - 0x18], ebx
jmp 0x4896e5
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x7c]
mov dword [eax + ecx*4], 0x56b8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4896d5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x20]
dec dword [ebp - 0x20]
cmp edx, eax
mov ecx, esi
cmovle ecx, ebx
mov eax, dword [ebp - 0x40]
add eax, ecx
neg eax
sbb eax, eax
inc eax
mov ecx, 0xffff
cmp ecx, eax
sbb eax, eax
inc eax
mov ecx, dword [ebp - 0x24]
sub ecx, eax
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp ecx, eax
setge dl
xor ecx, ecx
cmp edx, 0x7c71
setge cl
neg ecx
xor eax, eax
cmp ecx, esi
setl al
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x24]
dec eax
imul eax, dword [ebp - 0x3c]
add eax, 0xfffffff6
mov ecx, dword [ebp - 0x18]
add ecx, eax
je 0x489815
mov dword [ebp - 0x18], 0x98c5
mov dword [ebp - 0x1c], ebx
jmp 0x4897e5
mov dword [ebp - 0x14], 0x67a9
mov dword [ebp - 0x28], ebx
jmp 0x489799
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x14], 0xd6c8400b
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x40]
push 3
pop ecx
sub ecx, eax
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], esi
jle 0x489776
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x40]
cmp dword [ebp - 0x28], ebx
je 0x4897c9
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
imul ecx, dword [ebp - 0x20], 9
mov eax, dword [ebp - 0x40]
add ecx, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x40], ecx
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0x7178
setg cl
mov dword [ebp - 0x28], ecx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jle 0x48976a
mov dword [ebp - 0x18], ebx
jmp 0x48980e
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], 0
je 0x489804
push ebx
push 0x776
call dword [0xadb56c]
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x40], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jle 0x4897ef
jmp 0x489843
mov dword [ebp - 0x14], ebx
jmp 0x48983d
mov dword [ebp - 0x18], ebx
jmp 0x489835
mov byte [ebp - 0x32], bl
cmp byte [ebp - 0x32], 0
je 0x489832
push ebx
push esi
push esi
push ebx
call dword [0xadb2c4]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jle 0x48981f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x20
jne 0x48981a
lea ecx, [ebp - 0x7c]
call fcn.0043e505
mov eax, dword [ebp - 0x38]
cmp dword [eax], 0
je 0x489c37
push dword [eax]
push ebx
push dword [eax + 4]
call fcn.00446628
add esp, 0xc
mov dword [ebp - 0x14], 0x9c17
mov dword [ebp - 0x1c], 0xe92eda8e
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x20], 0x1a7a81a8
mov dword [ebp - 0x28], 0x6488a973
mov dword [ebp - 0x30], ebx
push 6
pop eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x44], 0xffffffff
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x24], ebx
jmp 0x4898bb
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x60], 0x5189
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], edi
jl 0x4898ad
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x14]
je 0x4898d5
cmp dword [ebp - 0x14], ebx
mov eax, esi
jne 0x4898d7
mov eax, ebx
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], ebx
jne 0x4898e6
cmp dword [ebp - 0x1c], ebx
mov ecx, ebx
je 0x4898e8
mov ecx, esi
xor eax, eax
cmp ecx, esi
sete al
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x1c], ebx
jmp 0x48994b
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], 0xc3efc167
mov dword [ebp - 0x2c], 0xcb8e0045
mov dword [ebp - 0x2c], 0xfffffffe
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x2c], 8
lea ecx, [ebp - 0x44]
call fcn.0048933a
cmp dword [ebp - 0x30], ebx
jne 0x489951
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x2d
jle 0x48990f
mov eax, dword [ebp - 0x38]
push dword [eax + 4]
call fcn.004946cd
pop ecx
mov dword [ebp - 0x1c], 0x3908
cmp dword [ebp - 0x1c], 0x3a20
jle 0x4899d2
mov eax, ebx
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x14], 0x38e6
and eax, ecx
cdq
push edx
push eax
lea ecx, [ebp - 0xd4]
call fcn.00401a03
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x48999a
mov eax, dword [eax]
push eax
call fcn.004945f7
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xd4]
call fcn.0043e80f
mov ecx, dword [ebp - 0x24]
add ecx, edi
mov dword [ebp - 0x24], ecx
dec dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
jne 0x489980
inc edi
cmp edi, 0x1570
jl 0x489974
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x620
jl 0x489972
mov dword [ebp - 4], 4
cmp dword [ebp - 0x1c], 0x3623
jge 0x4899ed
push 0xac72c8
call fcn.004945f7
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x489a16
mov dword [ebp - 0x14], 0xfffffff6
mov dword [ebp - 0x14], 0x5fec
cmp dword [ebp - 0x14], 0x62a3
jle 0x489aa7
mov eax, ebx
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x30], ebx
mov ecx, edi
shl eax, cl
mov dword [ebp - 0x2c], eax
mov edi, ebx
mov ecx, edi
sar eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xbc]
call fcn.00401a03
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x489a5f
mov eax, dword [eax]
push eax
call fcn.004945f7
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xbc]
call fcn.0043e80f
inc edi
cmp edi, 0x9ae
mov eax, dword [ebp - 0x2c]
jl 0x489a43
mov edi, dword [ebp - 0x24]
inc edi
mov dword [ebp - 0x24], edi
cmp edi, 0x266
mov eax, dword [ebp - 0x20]
jl 0x489a37
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x59a2
jl 0x489a32
push 0x12b0
call dword [0xadb434]
movdqa xmm0, xmmword [0xac8280]
movdqu xmmword [ebp - 0x8c], xmm0
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
push dword [ebp - 0x44]
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x8c]
push eax
push ebx
lea ecx, [ebp - 0x50]
call fcn.00440195
mov dword [ebp - 4], 6
cmp dword [ebp - 0x14], 0x5c95
jge 0x489af2
push 0xac730c
call fcn.004945f7
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x489b1b
mov dword [ebp - 0x30], 0xffff
mov dword [ebp - 0x2c], 0xfffffffc
mov dword [ebp - 0x14], 0xe
jmp 0x489b3d
lea ecx, [ebp - 0x50]
call fcn.004893f4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1c
jl 0x489b32
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov eax, dword [ebp - 0x50]
cmp dword [eax], esi
setge cl
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x2c], 0x1637c1d6
lea ecx, [ebp - 0x50]
call fcn.0043e505
mov eax, dword [ebp - 0x38]
mov dword [eax + 4], ebx
mov dword [ebp - 0x28], 0x7cf4
cmp dword [ebp - 0x28], 0x7e58
jle 0x489bf1
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], 0x5253
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x24], ebx
mov eax, edi
cdq
idiv ecx
xor edx, dword [ebp - 0x20]
mov eax, edx
cdq
push edx
push eax
lea ecx, [ebp - 0xec]
call fcn.00401a03
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x489bae
mov eax, dword [eax]
push eax
call fcn.004945f7
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xec]
call fcn.0043e80f
mov ecx, dword [ebp - 0x24]
inc ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 0x3c39
jl 0x489b8c
inc edi
cmp edi, 0x3ed4
jl 0x489b87
mov edi, dword [ebp - 0x1c]
add dword [ebp - 0x20], edi
dec dword [ebp - 0x14]
jne 0x489b85
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x1ff6
jl 0x489b7b
mov dword [ebp - 4], 8
cmp dword [ebp - 0x28], 0x7bcd
jge 0x489c0c
push 0xac7334
call fcn.004945f7
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x489c32
mov eax, dword [ebp - 0x38]
mov dword [eax], ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret