Function at 0x481dbc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff18
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0xd8], edx
mov dword [ebp - 4], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x482664
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebx + 0x3e0], 0
je 0x481e72
mov eax, dword [ebx + 0x3e4]
push eax
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x45cac8]
call fcn.004056cc
add esp, 4
mov eax, dword [ebp - 4]
mov ecx, 0x5c
mov edx, dword [ebx + 0x3e4]
call fcn.00402f74
lea edx, [ebp - 0xd8]
mov eax, dword [ebx + 0x3dc]
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov eax, dword [ebp - 0xd8]
call fcn.004054f0
mov edi, eax
dec edi
test edi, edi
jl 0x481e72
inc edi
xor esi, esi
lea edx, [ebp - 0xdc]
mov eax, dword [ebx + 0x3dc]
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov eax, dword [ebp - 0xdc]
mov al, byte [eax + esi]
mov edx, dword [ebp - 4]
xor byte [edx + esi], al
inc esi
dec edi
jne 0x481e4e
mov eax, dword [ebx + 4]
cmp eax, 0x7109
jg 0x481eb3
je 0x482095
add eax, 0xffff8eff
cmp eax, 6
ja case.default.0x481ec1
jmp dword [eax*4 + 0x481e97]
add eax, 0xffff8cff
cmp eax, 6
ja case.default.0x481ec1
jmp dword [eax*4 + 0x481ec8]
lea edx, [ebp - 0x14]
lea eax, [ebx + 8]
call fcn.00458cec
lea eax, [ebx + 0x3d8]
mov edx, 0x10
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x14]
mov ecx, 0x10
call fcn.00402c84
jmp 0x482627
lea edx, [ebp - 0x14]
lea eax, [ebx + 0x44]
call fcn.00458b0c
lea eax, [ebx + 0x3d8]
mov edx, 0x10
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x14]
mov ecx, 0x10
call fcn.00402c84
jmp 0x482627
lea edx, [ebp - 0x28]
lea eax, [ebx + 0xa0]
call fcn.0045c868
lea eax, [ebx + 0x3d8]
mov edx, 0x14
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x28]
mov ecx, 0x14
call fcn.00402c84
jmp 0x482627
lea edx, [ebp - 0x44]
lea eax, [ebx + 0x240]
call fcn.004776c0
lea eax, [ebx + 0x3d8]
mov edx, 0x1c
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x44]
mov ecx, 0x1c
call fcn.00402c84
jmp 0x482627
lea edx, [ebp - 0x64]
lea eax, [ebx + 0x240]
call fcn.00477a08
lea eax, [ebx + 0x3d8]
mov edx, 0x20
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x64]
mov ecx, 0x20
call fcn.00402c84
jmp 0x482627
lea edx, [ebp - 0xd4]
lea eax, [ebx + 0x2ac]
call fcn.0047834c
lea eax, [ebx + 0x3d8]
mov edx, 0x40
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0xd4]
mov ecx, 0x40
call fcn.00402c84
jmp 0x482627
lea edx, [ebp - 0x94]
lea eax, [ebx + 0x2ac]
call fcn.00478c20
lea eax, [ebx + 0x3d8]
mov edx, 0x30
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x94]
mov ecx, 0x30
call fcn.00402c84
jmp 0x482627
lea edx, [ebp - 0x28]
lea eax, [ebx + 0x378]
call fcn.004811ac
lea eax, [ebx + 0x3d8]
mov edx, 0x14
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x28]
mov ecx, 0x14
call fcn.00402c84
jmp 0x482627
lea edx, [ebp - 0x14]
lea eax, [ebx + 0x44]
call fcn.00458b0c
lea eax, [ebx + 0x3d8]
mov edx, 0x10
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x14]
mov ecx, 0x10
call fcn.00402c84
lea eax, [ebx + 0x44]
call fcn.00458a18
mov edx, dword [ebp - 4]
lea eax, [ebx + 0x44]
mov ecx, dword [ebx + 0x3e4]
call fcn.00458a5c
mov eax, dword [ebx + 0x3d8]
call fcn.0040464c
push eax
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebx + 0x44]
pop ecx
call fcn.00458a5c
lea edx, [ebp - 0x14]
lea eax, [ebx + 0x44]
call fcn.00458b0c
lea eax, [ebx + 0x3d8]
mov edx, 0x10
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x14]
mov ecx, 0x10
call fcn.00402c84
jmp 0x482627
lea edx, [ebp - 0x28]
lea eax, [ebx + 0xa0]
call fcn.0045c868
lea eax, [ebx + 0x3d8]
mov edx, 0x14
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x28]
mov ecx, 0x14
call fcn.00402c84
lea eax, [ebx + 0xa0]
call fcn.0045c768
mov edx, dword [ebp - 4]
lea eax, [ebx + 0xa0]
mov ecx, dword [ebx + 0x3e4]
call fcn.0045c7c4
mov eax, dword [ebx + 0x3d8]
call fcn.0040464c
push eax
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebx + 0xa0]
pop ecx
call fcn.0045c7c4
lea edx, [ebp - 0x28]
lea eax, [ebx + 0xa0]
call fcn.0045c868
lea eax, [ebx + 0x3d8]
mov edx, 0x14
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x28]
mov ecx, 0x14
call fcn.00402c84
jmp 0x482627
lea edx, [ebp - 0x44]
lea eax, [ebx + 0x240]
call fcn.004776c0
lea eax, [ebx + 0x3d8]
mov edx, 0x1c
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x44]
mov ecx, 0x1c
call fcn.00402c84
lea eax, [ebx + 0x240]
call fcn.00477628
mov edx, dword [ebp - 4]
lea eax, [ebx + 0x240]
mov ecx, dword [ebx + 0x3e4]
call fcn.00477688
mov eax, dword [ebx + 0x3d8]
call fcn.0040464c
push eax
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebx + 0x240]
pop ecx
call fcn.00477688
lea edx, [ebp - 0x44]
lea eax, [ebx + 0x240]
call fcn.004776c0
lea eax, [ebx + 0x3d8]
mov edx, 0x1c
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x44]
mov ecx, 0x1c
call fcn.00402c84
jmp 0x482627
lea edx, [ebp - 0x64]
lea eax, [ebx + 0x240]
call fcn.00477a08
lea eax, [ebx + 0x3d8]
mov edx, 0x20
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x64]
mov ecx, 0x20
call fcn.00402c84
lea eax, [ebx + 0x240]
call fcn.004776e4
mov edx, dword [ebp - 4]
lea eax, [ebx + 0x240]
mov ecx, dword [ebx + 0x3e4]
call fcn.00477940
mov eax, dword [ebx + 0x3d8]
call fcn.0040464c
push eax
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebx + 0x240]
pop ecx
call fcn.00477940
lea edx, [ebp - 0x64]
lea eax, [ebx + 0x240]
call fcn.00477a08
lea eax, [ebx + 0x3d8]
mov edx, 0x20
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x64]
mov ecx, 0x20
call fcn.00402c84
jmp 0x482627
lea edx, [ebp - 0xd4]
lea eax, [ebx + 0x2ac]
call fcn.0047834c
lea eax, [ebx + 0x3d8]
mov edx, 0x40
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0xd4]
mov ecx, 0x40
call fcn.00402c84
lea eax, [ebx + 0x2ac]
call fcn.00477cac
mov edx, dword [ebp - 4]
lea eax, [ebx + 0x2ac]
mov ecx, dword [ebx + 0x3e4]
call fcn.00478264
mov eax, dword [ebx + 0x3d8]
call fcn.0040464c
push eax
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebx + 0x2ac]
pop ecx
call fcn.00478264
lea edx, [ebp - 0xd4]
lea eax, [ebx + 0x2ac]
call fcn.0047834c
lea eax, [ebx + 0x3d8]
mov edx, 0x40
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0xd4]
mov ecx, 0x40
call fcn.00402c84
jmp 0x482627
lea edx, [ebp - 0x94]
lea eax, [ebx + 0x2ac]
call fcn.00478c20
lea eax, [ebx + 0x3d8]
mov edx, 0x30
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x94]
mov ecx, 0x30
call fcn.00402c84
lea eax, [ebx + 0x2ac]
call fcn.00478b18
mov edx, dword [ebp - 4]
lea eax, [ebx + 0x2ac]
mov ecx, dword [ebx + 0x3e4]
call fcn.00478be4
mov eax, dword [ebx + 0x3d8]
call fcn.0040464c
push eax
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebx + 0x2ac]
pop ecx
call fcn.00478be4
lea edx, [ebp - 0x94]
lea eax, [ebx + 0x2ac]
call fcn.00478c20
lea eax, [ebx + 0x3d8]
mov edx, 0x30
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x94]
mov ecx, 0x30
call fcn.00402c84
jmp 0x482627
lea edx, [ebp - 0x28]
lea eax, [ebx + 0x378]
call fcn.004811ac
lea eax, [ebx + 0x3d8]
mov edx, 0x14
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x28]
mov ecx, 0x14
call fcn.00402c84
lea eax, [ebx + 0x378]
call fcn.00480a6c
mov edx, dword [ebp - 4]
lea eax, [ebx + 0x378]
mov ecx, dword [ebx + 0x3e4]
call fcn.004810fc
mov eax, dword [ebx + 0x3d8]
call fcn.0040464c
push eax
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebx + 0x378]
pop ecx
call fcn.004810fc
lea edx, [ebp - 0x28]
lea eax, [ebx + 0x378]
call fcn.004811ac
lea eax, [ebx + 0x3d8]
mov edx, 0x14
call fcn.004049d8
lea eax, [ebx + 0x3d8]
call fcn.004048a4
mov edx, eax
lea eax, [ebp - 0x28]
mov ecx, 0x14
call fcn.00402c84
jmp 0x482627
mov eax, dword [ebx + 4]
mov dword [ebp - 0xe4], eax
mov byte [ebp - 0xe0], 0
lea eax, [ebp - 0xe4]
push eax
push 0
lea edx, [ebp - 0xe8]
mov eax, dword [0x4fc5d4]
call fcn.004063fc
mov ecx, dword [ebp - 0xe8]
mov dl, 1
mov eax, dword [0x481354]
call fcn.0040c01c
call fcn.00403cfc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x48266b
lea eax, [ebp - 0xe8]
call fcn.0040438c
lea eax, [ebp - 0xdc]
mov edx, dword [0x45cac8]
mov ecx, 2
call fcn.00404e44
lea eax, [ebp - 4]
mov edx, dword [0x45cac8]
call fcn.004057d8
ret