Function at 0x46b7c6
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4da0f9
call fcn.004d9668
sub esp, 0x68
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x20], 0x4c91
xor ebx, ebx
cmp dword [ebp - 0x20], 0x4cda
jle 0x46b845
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x28], ebx
mov ecx, ebx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x30], 0x76c8
mov ebx, dword [ebp - 0x28]
mov eax, edi
sar eax, cl
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xadc578
call fcn.0045cb52
mov ecx, dword [ebp - 0x38]
add ecx, ebx
mov dword [ebp - 0x38], ecx
dec dword [ebp - 0x30]
jne 0x46b804
inc ebx
mov dword [ebp - 0x28], ebx
cmp ebx, 0x4502
push 0
pop ebx
jl 0x46b7f5
inc edi
cmp edi, 0x6797
jl 0x46b7f2
inc esi
cmp esi, 0xd93
jl 0x46b7f0
mov dword [ebp - 0x1c], 0x2c03342e
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x20], 0x4b12
jge 0x46b867
mov edx, 0xacc6cc
mov ecx, 0xadc578
call fcn.0045e4f8
or edi, 0xffffffff
mov dword [ebp - 4], edi
jmp 0x46b891
push 0xfffffffffffffffb
pop ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x28], 0x6ed73489
mov dword [ebp - 0x28], 0xd296407
mov dword [ebp - 0x20], ebx
xor esi, esi
inc esi
jmp 0x46b8b7
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x2c], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x46b8ad
mov dword [ebp - 0x20], ebx
jmp 0x46b8cf
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x3c], 0x2b3f54c3
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x46b8c1
mov dword [ebp - 0x1c], ecx
jmp 0x46b9d7
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x18], ebx
jmp 0x46b9c5
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x28], 0x8d1d9d65
mov dword [ebp - 0x30], esi
cmp dword [ebp - 0x30], ebx
je 0x46b971
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x2c], ebx
je 0x46b964
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x2c], ebx
je 0x46b964
mov edx, dword [ebp - 0x1c]
dec edx
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x2c]
sub edx, eax
mov ecx, dword [ebp - 0x18]
imul ecx, edx
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setg cl
imul eax, ecx, 0x5bf7
test eax, eax
je 0x46b944
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], esi
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x2c]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
test eax, eax
setg cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], ebx
mov edx, esi
jne 0x46b973
mov edx, ebx
mov dword [ebp - 0x20], 0xffff7071
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
sub eax, 4
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x38], ebx
jne 0x46b9a5
cmp dword [ebp - 0x1c], ebx
mov ecx, ebx
je 0x46b9a7
mov ecx, esi
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x2c], ebx
jne 0x46b9b3
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
sub eax, ecx
xor ecx, ecx
cmp eax, edi
setg cl
mov dword [ebp - 0x28], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x46b8e7
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffff2
jne 0x46b8dc
mov dword [ebp - 0x20], ebx
jmp 0x46ba34
mov dword [ebp - 0x38], 0x9babe4a9
mov dword [ebp - 0x28], ebx
jmp 0x46ba28
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], ebx
jl 0x46ba25
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x3c], ebx
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], 0
je 0x46ba20
push ebx
push 0xe98
push 0xa78
push 0x8d5
call dword [0xadf03c]
dec dword [ebp - 0x1c]
jns 0x46b9fa
dec dword [ebp - 0x28]
cmp dword [ebp - 0x28], 0xfffffff3
je 0x46b9f2
mov eax, dword [ebp - 0x38]
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x1a
je 0x46b9e6
mov eax, dword [ebp - 0x34]
cmp dword [eax], 0
je 0x46bd30
push dword [eax]
push ebx
push dword [eax + 4]
call fcn.004c147a
add esp, 0xc
push esi
lea ecx, [ebp - 0x68]
call fcn.0045cc67
mov dword [ebp - 0x20], 0xfffffff6
mov dword [ebp - 0x38], 0xf9f7
mov dword [ebp - 0x30], 0xd972c40a
mov dword [ebp - 0x30], 0xad3380ee
mov dword [ebp - 0x30], ebx
jmp 0x46ba8e
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x68]
mov dword [eax + ecx*4], 4
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], esi
jl 0x46ba7e
mov dword [ebp - 0x20], ebx
jmp 0x46bae9
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x30], ebx
jmp 0x46baaa
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x40], esi
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], esi
jl 0x46baa0
mov dword [ebp - 0x40], 0xc8fc558b
mov dword [ebp - 0x28], 0xc8fc558b
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], ebx
jl 0x46bae6
mov byte [ebp - 0x12], bl
cmp byte [ebp - 0x12], 0
je 0x46bade
push 0x1ed4
push 0xbe5
call dword [fcn.00adf3c8]
mov eax, dword [ebp - 0x28]
dec dword [ebp - 0x28]
jns 0x46bac5
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x46ba98
jne 0x46bb0f
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x20], 0x980d
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
imul eax, eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], ebx
mov ecx, ebx
je 0x46bb11
mov ecx, esi
mov eax, dword [ebp - 0x68]
sub ecx, dword [eax]
cmp ecx, dword [ebp - 0x38]
je 0x46bb22
cmp dword [ebp - 0x38], ebx
mov eax, esi
jne 0x46bb24
mov eax, ebx
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x68]
call fcn.0045cd39
mov eax, dword [ebp - 0x34]
push dword [eax + 4]
call fcn.004c426d
pop ecx
mov dword [ebp - 0x20], 0x4a6847df
mov dword [ebp - 0x20], 0xffffffee
jmp 0x46bc41
push 3
lea ecx, [ebp - 0x74]
call fcn.0045cc67
mov dword [ebp - 0x28], 0x4f27d270
mov dword [ebp - 0x38], 0xe22401db
mov dword [ebp - 0x38], 0xa1434a9
mov dword [ebp - 0x24], ebx
jmp 0x46bb7e
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x74]
mov dword [eax + ecx*4], edi
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 3
jl 0x46bb72
mov dword [ebp - 0x24], ebx
jmp 0x46bb93
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x44], esi
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], esi
jl 0x46bb89
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x30], eax
mov ecx, dword [eax + 4]
xor eax, eax
cmp ecx, 0xfce6
sete al
cmp eax, ecx
jne 0x46bbbc
test ecx, ecx
mov eax, ebx
je 0x46bbbe
mov eax, esi
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0xfff6
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x30]
sub edx, dword [eax + 4]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setg cl
xor eax, eax
mov edx, dword [ebp - 0x30]
cmp ecx, dword [edx + 4]
setl al
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp eax, ecx
setne dl
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
setle cl
mov eax, dword [ebp - 0x74]
sub ecx, dword [eax + 8]
je 0x46bc26
cmp dword [ebp - 0x20], ebx
je 0x46bc26
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x30], 0x91d0b6bd
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x30], eax
jmp 0x46bc36
mov byte [ebp - 0x12], bl
cmp byte [ebp - 0x12], 0
je 0x46bc36
push ebx
call dword [0xadf2c8]
lea ecx, [ebp - 0x74]
call fcn.0045cd39
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xffffffe8
je 0x46bb4e
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x34]
mov dword [eax + 4], ebx
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x38], 0x5596960f
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x38], 0xe2167fa5
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x38], 0xfffffffc
mov dword [ebp - 0x38], 0xd9a924c0
mov dword [ebp - 0x38], 0xdc5336de
mov dword [ebp - 0x30], 0x78f4
push 4
lea ecx, [ebp - 0x5c]
call fcn.0045cc67
mov dword [ebp - 0x20], ebx
jmp 0x46bca7
mov eax, dword [ebp - 0x20]
mov dword [ebp + eax*4 - 0x50], 0xfffffffa
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 2
jl 0x46bc99
mov dword [ebp - 0x20], ebx
jmp 0x46bcbe
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x5c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 4
jl 0x46bcb2
dec dword [ebp - 0x30]
mov eax, dword [ebp - 0x5c]
cmp dword [eax], ebx
jne 0x46bd0a
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp eax, ecx
setl dl
xor ecx, ecx
mov eax, dword [ebp - 0x5c]
cmp dword [eax], edx
setge cl
sub ecx, 0x8bb
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
imul ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x5c]
sub ecx, dword [eax + 8]
cmp ecx, dword [ebp - 0x28]
jge 0x46bd0a
mov esi, ebx
lea eax, [esi - 0xc147]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp ecx, eax
setle dl
mov dword [ebp - 0x38], edx
lea ecx, [ebp - 0x5c]
call fcn.0045cd39
mov eax, dword [ebp - 0x34]
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