Function at 0x40fca0
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x498458
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
push ebx
lea ecx, [esp + 0x18]
mov dword [esp + 0x1c], esi
mov byte [esp + 0x14], bl
xor ebp, ebp
call fcn.0046eb50
push 0x12
lea ecx, [esi + 8]
mov dword [esp + 0x2c], ebx
call fcn.00401ba0
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.0046eb30
lea ecx, [esp + 0x18]
call fcn.0046ee50
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.0046eb30
mov ecx, dword [0x4b63ec]
call fcn.00416cf0
cmp ax, bx
je 0x40fd29
push ebx
lea ecx, [esp + 0x18]
call fcn.0046ee40
movzx bp, al
jmp case.0x40fd3e.4
xor eax, eax
mov al, byte [0x4b63d8]
dec eax
cmp eax, 0xe
ja case.0x40fd3e.4
xor ecx, ecx
mov cl, byte [eax + 0x40ff08]
jmp dword [ecx*4 + 0x40fef8]
mov ebp, 1
jmp case.0x40fd3e.4
mov ebp, 8
jmp case.0x40fd3e.4
mov ebp, 6
mov edi, dword [esp + 0x30]
mov ecx, edi
call fcn.0046efe0
mov esi, eax
cmp si, 2
jl case.0x40fd7c.7
movsx eax, bp
dec eax
cmp eax, 8
ja case.0x40fd7c.7
jmp dword [eax*4 + 0x40ff18]
dec esi
xor ebp, ebp
cmp si, bx
jle 0x40fda0
push ebp
mov ecx, edi
call fcn.0046ee40
and eax, 0xff
add ebx, eax
inc ebp
cmp bp, si
jl 0x40fd8b
push ebx
jmp 0x40fec6
dec esi
xor ebp, ebp
cmp si, bx
jle 0x40fdc3
push ebp
mov ecx, edi
call fcn.0046ee40
and eax, 0xff
add ebx, eax
inc ebp
cmp bp, si
jl 0x40fdae
not bl
jmp 0x40febd
dec esi
xor ebp, ebp
cmp si, bx
jle 0x40fde7
push ebp
mov ecx, edi
call fcn.0046ee40
and eax, 0xff
add ebx, eax
inc ebp
cmp bp, si
jl 0x40fdd2
not bl
inc bl
mov byte [esp + 0x10], bl
mov eax, dword [esp + 0x10]
push eax
jmp 0x40fec6
sub esi, 2
xor ebp, ebp
cmp si, bx
jle 0x40fe18
push ebp
mov ecx, edi
call fcn.0046ee40
and eax, 0xff
add ebx, eax
inc ebp
cmp bp, si
jl 0x40fe03
push ebx
push esi
mov ecx, edi
call fcn.0046ef60
shr ebx, 8
mov byte [esp + 0x10], bl
inc esi
mov ecx, dword [esp + 0x10]
push ecx
jmp 0x40fec6
sub esi, 2
xor ebp, ebp
cmp si, bx
jle 0x40fe52
push ebp
mov ecx, edi
call fcn.0046ee40
and eax, 0xff
add ebx, eax
inc ebp
cmp bp, si
jl 0x40fe3d
mov edx, ebx
mov ecx, edi
shr edx, 8
push edx
push esi
call fcn.0046ef60
push ebx
inc esi
jmp 0x40fec6
movsx eax, si
lea ebp, [eax - 1]
cmp ebp, ebx
jle 0x40fe88
push ebx
mov ecx, edi
call fcn.0046ee40
mov cl, byte [esp + 0x10]
xor cl, al
inc ebx
movsx eax, bx
cmp eax, ebp
mov byte [esp + 0x10], cl
jl 0x40fe6e
mov ecx, dword [esp + 0x10]
dec esi
push ecx
jmp 0x40fec6
mov ecx, dword [esp + 0x18]
push edi
call fcn.00410000
jmp case.0x40fd7c.7
dec esi
xor ebp, ebp
cmp si, bx
jle 0x40feb9
push ebp
mov ecx, edi
call fcn.0046ee40
and eax, 0xff
add ebx, eax
inc ebp
cmp bp, si
jl 0x40fea4
not bl
dec bl
mov byte [esp + 0x10], bl
mov edx, dword [esp + 0x10]
push edx
push esi
mov ecx, edi
call fcn.0046ef60
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xffffffff
call fcn.0046ec60
mov ecx, dword [esp + 0x20]
pop edi
pop esi
pop ebp
mov ax, 1
mov dword fs:[0], ecx
pop ebx
add esp, 0x1c
ret 4
call fcn.0046efc0
push 0x4b63c8
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.0046eb30
mov ecx, dword [0x4b63dc]
call fcn.004104a0
mov esi, eax
cmp si, bx
jne 0x4402c7
lea ecx, [esp + 0x14]
mov byte [esp + 0xa8], 5
call fcn.0046ec60
lea ecx, [esp + 0x20]
mov byte [esp + 0xa8], 4
call fcn.0046ec60
lea ecx, [esp + 0x1c]
mov byte [esp + 0xa8], 3
call fcn.0046ec60
lea ecx, [esp + 0x18]
mov byte [esp + 0xa8], 2
call fcn.0046ec60
lea ecx, [esp + 0x10]
mov byte [esp + 0xa8], 1
call fcn.0046ec60
lea ecx, [esp + 0xb0]
mov byte [esp + 0xa8], bl
call fcn.0046ec60
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0xb8]
cmp esi, eax
mov dword [esp + 0xa8], 0xffffffff
mov edi, eax
je 0x440436
mov ecx, esi
call fcn.0046ec60
add esi, 4
cmp esi, edi
jne 0x4402b4
jmp 0x44042f
push ebx
mov ecx, 0x4b63c8
call fcn.00401ba0
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.0046eb30
lea ecx, [esp + 0x14]
call fcn.0046ee50
or edi, 0xffffffff
cmp si, di
jne 0x440447
lea ecx, [esp + 0x10]
call fcn.0046efe0
dec eax
lea ecx, [esp + 0x10]
push eax
call fcn.0046ee40
cmp al, 0x34
mov byte [esp + 0xa8], 5
lea ecx, [esp + 0x14]
jne 0x4403aa
call fcn.0046ec60
lea ecx, [esp + 0x20]
mov byte [esp + 0xa8], 4
call fcn.0046ec60
lea ecx, [esp + 0x1c]
mov byte [esp + 0xa8], 3
call fcn.0046ec60
lea ecx, [esp + 0x18]
mov byte [esp + 0xa8], 2
call fcn.0046ec60
lea ecx, [esp + 0x10]
mov byte [esp + 0xa8], 1
call fcn.0046ec60
lea ecx, [esp + 0xb0]
mov byte [esp + 0xa8], bl
call fcn.0046ec60
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0xb8]
mov dword [esp + 0xa8], edi
cmp esi, eax
mov edi, eax
je 0x4404df
mov ecx, esi
call fcn.0046ec60
add esi, 4
cmp esi, edi
jne 0x440397
jmp 0x4404d8
call fcn.0046ec60
lea ecx, [esp + 0x20]
mov byte [esp + 0xa8], 4
call fcn.0046ec60
lea ecx, [esp + 0x1c]
mov byte [esp + 0xa8], 3
call fcn.0046ec60
lea ecx, [esp + 0x18]
mov byte [esp + 0xa8], 2
call fcn.0046ec60
lea ecx, [esp + 0x10]
mov byte [esp + 0xa8], 1
call fcn.0046ec60
lea ecx, [esp + 0xb0]
mov byte [esp + 0xa8], bl
call fcn.0046ec60
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0xb8]
mov dword [esp + 0xa8], edi
cmp esi, eax
mov edi, eax
je 0x440436
mov ecx, esi
call fcn.0046ec60
add esi, 4
cmp esi, edi
jne 0x440421
mov esi, dword [esp + 0xb8]
push esi
call fcn.0048d500
add esp, 4
xor ax, ax
jmp 0x4404ec
lea ecx, [esp + 0x14]
mov byte [esp + 0xa8], 5
call fcn.0046ec60
lea ecx, [esp + 0x20]
mov byte [esp + 0xa8], 4
call fcn.0046ec60
lea ecx, [esp + 0x1c]
mov byte [esp + 0xa8], 3
call fcn.0046ec60
lea ecx, [esp + 0x18]
mov byte [esp + 0xa8], 2
call fcn.0046ec60
lea ecx, [esp + 0x10]
mov byte [esp + 0xa8], 1
call fcn.0046ec60
lea ecx, [esp + 0xb0]
mov byte [esp + 0xa8], bl
call fcn.0046ec60
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0xb8]
mov dword [esp + 0xa8], edi
cmp esi, eax
mov edi, eax
je 0x4404df
mov ecx, esi
call fcn.0046ec60
add esi, 4
cmp esi, edi
jne 0x4404ca
mov esi, dword [esp + 0xb8]
push esi
call fcn.0048d500
add esp, 4
mov ax, 1
mov ecx, dword [esp + 0xa0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x9c
ret 0x18