Function at 0x493fec
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4e8397
call fcn.004e7638
sub esp, 0x100
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x30], 0xffffffff
mov dword [ebp - 0x28], 0x2fc5c3c3
mov dword [ebp - 0x18], 0xd748aee5
xor ebx, ebx
mov dword [ebp - 0x30], ebx
xor edi, edi
inc edi
cmp dword [ebp - 0x30], 0x13
jg 0x494470
push 4
lea ecx, [ebp - 0x80]
call fcn.0043b6f6
mov dword [ebp - 0x28], 0x5548
cmp dword [ebp - 0x28], 0x57d1
jle 0x49408f
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x24], ebx
or eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xdc]
call fcn.004018f3
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x494064
mov eax, dword [eax]
push eax
call fcn.004d1e97
pop ecx
push ebx
push edi
lea ecx, [ebp - 0xdc]
call fcn.0043bad2
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x76a6
jl 0x49404a
inc esi
cmp esi, 0x9d7
jl 0x494045
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x28], 0x51bc
jge 0x4940a9
push 0xaa3444
call fcn.004d1e97
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4940d2
mov dword [ebp - 0x20], ebx
jmp 0x4940e7
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x80]
mov dword [eax + ecx*4], 0x2b57e8b7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x4940d7
mov eax, dword [ebp - 0x80]
mov dword [eax + 4], 0x1a
cmp dword [eax + 4], 0xffffffe7
jge 0x494260
mov dword [ebp - 0x20], 0x3fd3
cmp dword [ebp - 0x20], 0x4222
jle 0x494180
mov eax, ebx
mov dword [ebp - 0x28], ebx
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x2c], ebx
mov ecx, esi
sar eax, cl
mov dword [ebp - 0x18], eax
mov esi, ebx
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xf4]
call fcn.004018f3
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x494143
mov eax, dword [eax]
push eax
call fcn.004d1e97
pop ecx
push ebx
push edi
lea ecx, [ebp - 0xf4]
call fcn.0043bad2
inc esi
cmp esi, 0x6f14
mov eax, dword [ebp - 0x18]
jl 0x494127
mov esi, dword [ebp - 0x24]
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x673c
mov eax, dword [ebp - 0x28]
jl 0x49411b
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x167c
jl 0x494116
mov dword [ebp - 0x18], 0xfffffff7
mov dword [ebp - 4], 2
cmp dword [ebp - 0x20], 0x3c6e
jge 0x4941a2
push 0xaa346c
call fcn.004d1e97
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4941cb
mov dword [ebp - 0x20], ebx
jmp 0x4941de
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x50], 0xfffffff7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 3
jl 0x4941d0
mov dword [ebp - 0x4c], 0x1a
jmp 0x49420f
mov dword [ebp - 0x2c], 0xffff
mov dword [ebp - 0x24], 0xe34b64b5
mov dword [ebp - 0x18], 7
mov eax, dword [ebp - 0x2c]
imul eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 0xffffffef
jl 0x4941ed
mov dword [ebp - 0x18], ebx
jmp 0x49424f
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x50], ecx
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x49424c
push 0x209c
push ebx
push 0x1774
push 0x15d7
push 0x1ca1
call dword [0xac0178]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jle 0x49421a
mov eax, dword [ebp - 0x80]
dec dword [eax + 4]
jmp 0x4940f7
xor edx, edx
cmp dword [eax + 4], edi
setle dl
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setne cl
add ecx, 0x1b0fe2cf
jne 0x49439e
cmp dword [ebp - 0x30], ebx
jne 0x49439e
mov byte [ebp - 0x19], bl
mov dword [ebp - 0x20], 0x6a9e
cmp dword [ebp - 0x20], 0x6c6e
jle 0x494323
mov ecx, ebx
mov dword [ebp - 0x14], ebx
mov eax, ebx
mov dword [ebp - 0x28], ebx
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x2c], ebx
add eax, ecx
mov ecx, esi
sar eax, cl
mov dword [ebp - 0x18], eax
mov esi, ebx
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x10c]
call fcn.004018f3
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4942d7
mov eax, dword [eax]
push eax
call fcn.004d1e97
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x10c]
call fcn.0043bad2
inc esi
cmp esi, 0x7f94
mov eax, dword [ebp - 0x18]
jl 0x4942bb
mov esi, dword [ebp - 0x24]
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x2ccd
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
jl 0x4942ad
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x4823
jl 0x4942a8
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0x5397
jl 0x4942a3
cmp byte [ebp - 0x19], 0
je 0x494334
push 0x14e3
call dword [0xac05a4]
mov dword [ebp - 4], 6
cmp dword [ebp - 0x20], 0x6743
jge 0x49434f
push 0xaa34e4
call fcn.004d1e97
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x494378
mov dword [ebp - 0x18], 0xfffffffe
jmp 0x494393
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x494390
call dword [0xac03b8]
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xc
jg 0x494381
jmp 0x494460
mov dword [ebp - 0x24], 0x620
cmp dword [ebp - 0x24], 0x6e4
jle 0x4943de
mov esi, ebx
mov edi, ebx
mov eax, edi
and eax, esi
cdq
push edx
push eax
mov ecx, 0xabd5d8
call fcn.0043b5e1
inc edi
cmp edi, 0x7d40
jl 0x4943b2
inc esi
cmp esi, 0x3434
jl 0x4943b0
call dword [0xac01c4]
xor edi, edi
inc edi
mov dword [ebp - 0x2c], 0xfffffff8
mov dword [ebp - 4], 4
cmp dword [ebp - 0x24], 0x586
jge 0x494404
mov edx, 0xaa34a0
mov ecx, 0xabd5d8
call fcn.0043cf87
or dword [ebp - 4], 0xffffffff
jmp 0x49442d
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 2
setle cl
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], ebx
jne 0x494449
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
je 0x49445b
cmp dword [ebp - 0x28], ebx
mov eax, edi
jne 0x49445d
mov eax, ebx
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x80]
call fcn.0043b7c8
inc dword [ebp - 0x30]
jmp 0x49401f
mov byte [ebp - 0x31], bl
movdqa xmm0, xmmword [0xaa95c0]
movdqu xmmword [ebp - 0xc4], xmm0
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
push dword [ebp - 0x2c]
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xc4]
push eax
push ebx
lea ecx, [ebp - 0x5c]
call fcn.0043d458
movdqa xmm0, xmmword [0xaa9590]
movdqu xmmword [ebp - 0xb4], xmm0
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
push dword [ebp - 0x2c]
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0xb4]
push eax
push ebx
lea ecx, [ebp - 0x44]
call fcn.0043d458
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x14], 0xfffffff8
mov dword [ebp - 0x18], 0x39b8
mov dword [ebp - 0x14], 0xcf22a1ef
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], 0xffffffff
push 2
lea ecx, [ebp - 0x8c]
call fcn.0043b6f6
mov dword [ebp - 0x14], ebx
jmp 0x494523
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x8c]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x494514
xor ecx, ecx
mov eax, dword [ebp - 0x44]
cmp dword [eax + 4], edi
setg cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], 0xffff
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
neg eax
je 0x49456f
mov byte [ebp - 0x19], bl
cmp byte [ebp - 0x19], 0
je 0x49467c
push ebx
push 0x1b59
call dword [0xac04c0]
jmp 0x49467c
push 3
lea ecx, [ebp - 0x98]
call fcn.0043b6f6
mov dword [ebp - 0x24], 0x350c1656
mov dword [ebp - 0x24], 0x3370
mov dword [ebp - 0x18], ebx
jmp 0x49459d
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x74], 0x9096a9cb
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x49458f
mov dword [ebp - 0x18], ebx
jmp 0x4945bb
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x98]
mov dword [eax + ecx*4], 0x15eac84c
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4945a8
mov eax, dword [ebp - 0x70]
xor ecx, ecx
cmp eax, 0x58d3
setg cl
mov eax, dword [ebp - 0x98]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp dword [esi + 8], eax
setl dl
mov eax, dword [ebp - 0x70]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
add ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [esi + 8]
sub eax, edx
cmp eax, 0x99949389
sbb eax, eax
neg eax
xor ecx, ecx
cmp eax, 0x184bf4d8
setge cl
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x14], edi
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0x2c]
sub eax, 0x72f2
neg eax
sbb eax, eax
inc eax
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
neg eax
mov ecx, dword [esi + 8]
neg ecx
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x8c]
mov dword [eax], ecx
xor eax, eax
cmp ecx, 0x7151
setne al
sub eax, dword [ebp - 0x2c]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x98]
call fcn.0043b7c8
mov dword [ebp - 0x18], 3
push 0xfffffffffffffff9
pop esi
cmp dword [ebp - 0x18], ebx
jl 0x4947fd
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 3
jg 0x4947f5
mov dword [ebp - 0x24], 0x2baf
cmp dword [ebp - 0x24], 0x2e4e
jle 0x4946f8
mov edi, ebx
mov dword [ebp - 0x2c], ebx
mov esi, ebx
mov dword [ebp - 0x14], ebx
mov ebx, esi
and ebx, edi
mov edi, dword [ebp - 0x14]
mov eax, ebx
xor eax, edi
cdq
push edx
push eax
mov ecx, 0xabd5d8
call fcn.0043b5e1
inc edi
cmp edi, 0x5658
jl 0x4946c0
inc esi
cmp esi, 0x1a2c
push 0
pop ebx
mov edi, dword [ebp - 0x2c]
jl 0x4946b6
inc edi
mov dword [ebp - 0x2c], edi
cmp edi, 0x36a5
jl 0x4946b4
xor edi, edi
inc edi
mov dword [ebp - 0x14], 0x15c487e8
mov dword [ebp - 4], 8
cmp dword [ebp - 0x24], 0x29e4
jge 0x49471e
mov edx, 0xaa350c
mov ecx, 0xabd5d8
call fcn.0043cf87
or dword [ebp - 4], 0xffffffff
jmp 0x494747
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x14], 0x45c746e
mov dword [ebp - 0x30], ebx
jmp 0x4947e3
mov dword [ebp - 0x24], 0xfffffffa
mov esi, dword [ebp - 0x30]
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + ecx*4]
mov dword [edx + esi*4], eax
test eax, eax
jne 0x494783
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x44]
cmp dword [eax + ecx*4], ebx
mov esi, ebx
je 0x494785
mov esi, edi
mov dword [ebp - 0x14], edi
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x24], 0xfffffff7
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
dec eax
xor ecx, ecx
cmp eax, 0xc99c
setge cl
cmp ecx, 0xd5158905
sbb eax, eax
inc eax
imul eax, dword [ebp - 0x28]
test eax, eax
jne 0x4947bb
cmp dword [ebp - 0x14], ebx
mov edx, ebx
je 0x4947bd
mov edx, edi
imul edx, esi
neg edx
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setl cl
sub ecx, dword [ebp - 0x24]
sub ecx, 0xe2ae
add ecx, dword [ebp - 0x2c]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x24], ecx
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 3
jle 0x494759
inc dword [ebp - 0x20]
jmp 0x494695
dec dword [ebp - 0x18]
jmp 0x494683
lea ecx, [ebp - 0x8c]
call fcn.0043b7c8
lea ecx, [ebp - 0x44]
call fcn.0043b7c8
lea ecx, [ebp - 0x5c]
call fcn.0043b7c8
cmp byte [ebp - 0x31], 0
je 0x49482c
push ebx
push ebx
push 0x321
push ebx
call dword [0xac0510]
mov dword [ebp - 0x14], ebx
jmp 0x49483f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x38], 0xfffffff7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x494831
mov dword [ebp - 0x38], 0xc
jmp 0x4948c6
mov dword [ebp - 0x14], ebx
jmp 0x49485c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x68], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x494852
mov dword [ebp - 0x68], ebx
jmp 0x4948bd
push 2
lea ecx, [ebp - 0xa4]
call fcn.0043b6f6
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x14], ebx
jmp 0x49488b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xa4]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x49487c
mov dword [ebp - 0x20], ebx
jmp 0x4948a9
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xa4]
mov dword [eax + ecx*4], 0x7822e6e7
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x494896
lea ecx, [ebp - 0xa4]
call fcn.0043b7c8
dec dword [ebp - 0x68]
cmp dword [ebp - 0x68], 0xfffffff1
jl 0x494867
dec dword [ebp - 0x38]
cmp dword [ebp - 0x38], esi
jl 0x49484d
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], 0
je 0x4948df
push 0x1ff5
call dword [0xac0340]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret