Function at 0x459060
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ba813
mov eax, dword fs:[0]
push eax
sub esp, 0x104
mov eax, dword [0x692c00]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
test ebx, ebx
je 0x45935a
xor esi, esi
lea edi, [ebp - 0x11]
test eax, eax
cmovne esi, dword [ebp + 0xc]
cmovne edi, eax
mov eax, dword [ebp + 0x10]
cmp eax, 1
je 0x45934f
cmp eax, 5
jne 0x4590e2
lea ecx, [ebp - 0x70]
call fcn.004aff30
push ebx
push esi
push edi
lea ecx, [ebp - 0x70]
mov dword [ebp - 4], 0
call fcn.004b0770
lea ecx, [ebp - 0x70]
call fcn.004aff70
jmp 0x45935a
cmp eax, 7
jne 0x4590f4
push ebx
push esi
push edi
call fcn.004d42b0
jmp 0x459357
cmp eax, 2
jne 0x459106
push ebx
push esi
push edi
call fcn.004d49e0
jmp 0x459357
cmp eax, 3
jne 0x459118
push ebx
push esi
push edi
call fcn.004d5110
jmp 0x459357
cmp eax, 0x14
jne 0x45912a
push ebx
push esi
push edi
call fcn.004e0fd0
jmp 0x459357
cmp eax, 0x15
jne 0x45913c
push ebx
push esi
push edi
call fcn.004e10e0
jmp 0x459357
cmp eax, 0x16
jne 0x45914e
push ebx
push esi
push edi
call fcn.004e11f0
jmp 0x459357
cmp eax, 0x13
jne 0x459160
push ebx
push esi
push edi
call fcn.004e0ec0
jmp 0x459357
cmp eax, 0xf
je 0x45934f
cmp eax, 0x1d
jne 0x459191
xor al, al
xor edx, edx
test esi, esi
je 0x45918a
movzx ecx, byte [edx + edi]
inc edx
movzx eax, al
xor ecx, eax
mov al, byte [ecx + 0x68f880]
cmp edx, esi
jb 0x459176
mov byte [ebx], al
jmp 0x45935a
cmp eax, 0x1c
jne 0x4591fb
push 0
push esi
push edi
call fcn.00489170
add esp, 0xc
mov edx, eax
cmp byte [0x6858b1], 0
mov ecx, eax
je 0x4591d4
shr edx, 0x18
mov dword [ebp - 0x110], eax
shr ecx, 8
shr eax, 0x10
mov byte [ebx], dl
mov byte [ebx + 1], al
mov eax, dword [ebp - 0x110]
mov byte [ebx + 2], cl
mov byte [ebx + 3], al
jmp 0x45935a
shr ecx, 0x18
mov dword [ebp - 0x110], ecx
mov ecx, eax
shr ecx, 0x10
shr eax, 8
mov byte [ebx], dl
mov byte [ebx + 1], al
mov eax, dword [ebp - 0x110]
mov byte [ebx + 2], cl
mov byte [ebx + 3], al
jmp 0x45935a
cmp eax, 4
jne 0x459227
lea ecx, [ebp - 0x6c]
call fcn.004cce30
push ebx
push esi
push edi
lea ecx, [ebp - 0x6c]
mov dword [ebp - 4], 1
call fcn.004cd260
lea ecx, [ebp - 0x6c]
call fcn.004cce40
jmp 0x45935a
cmp eax, 8
jne 0x459263
lea ecx, [ebp - 0x70]
call fcn.004d2750
lea ecx, [ebp - 0x70]
mov dword [ebp - 4], 2
call fcn.004b0b80
push esi
push edi
lea ecx, [ebp - 0x70]
call fcn.004d2fa0
push ebx
lea ecx, [ebp - 0x70]
call fcn.004d2910
lea ecx, [ebp - 0x70]
call fcn.004d2790
jmp 0x45935a
cmp eax, 0x1e
jne 0x459275
push ebx
push esi
push edi
call fcn.004d3c80
jmp 0x459357
cmp eax, 9
jne 0x4592a1
lea ecx, [ebp - 0x7c]
call fcn.004cd3a0
push ebx
push esi
push edi
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], 3
call fcn.004ce400
lea ecx, [ebp - 0x7c]
call fcn.004cd3c0
jmp 0x45935a
cmp eax, 0xa
jne 0x4592cd
lea ecx, [ebp - 0x7c]
call fcn.004ce460
push ebx
push esi
push edi
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], 4
call fcn.004cfbf0
lea ecx, [ebp - 0x7c]
call fcn.004ce480
jmp 0x45935a
cmp eax, 0xb
jne 0x4592ff
lea ecx, [ebp - 0x8c]
call fcn.004cfc50
push ebx
push esi
push edi
lea ecx, [ebp - 0x8c]
mov dword [ebp - 4], 5
call fcn.004d0dd0
lea ecx, [ebp - 0x8c]
call fcn.004cfc70
jmp 0x45935a
cmp eax, 0xc
jne 0x459331
lea ecx, [ebp - 0x10c]
call fcn.004d0e40
push ebx
push esi
push edi
lea ecx, [ebp - 0x10c]
mov dword [ebp - 4], 6
call fcn.004d2720
lea ecx, [ebp - 0x10c]
call fcn.004d0e60
jmp 0x45935a
cmp eax, 0x11
jne 0x459340
push ebx
push esi
push edi
call fcn.004d5330
jmp 0x459357
cmp eax, 0x12
jne 0x45934f
push ebx
push esi
push edi
call fcn.004d5430
jmp 0x459357
push ebx
push esi
push edi
call fcn.004ccb40
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005b34c8
mov esp, ebp
pop ebp
ret