Function at 0x4b70a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
push ebp
push 0x4b76d2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4d2e28]
cmp dword [eax], 1
jne 0x4b70e4
mov dl, 1
mov eax, dword [ebx + 0x31c]
call fcn.0046b93c
mov eax, dword [ebx + 0x3a0]
mov eax, dword [eax + 0x68]
mov dl, 0x86
call fcn.004275dc
jmp 0x4b716c
mov eax, dword [0x4d2e28]
cmp dword [eax], 2
jne 0x4b710d
mov dl, 1
mov eax, dword [ebx + 0x3a4]
call fcn.0046b93c
mov eax, dword [ebx + 0x3a0]
mov eax, dword [eax + 0x68]
mov dl, 0x81
call fcn.004275dc
jmp 0x4b716c
mov eax, dword [0x4d2e28]
cmp dword [eax], 3
jne 0x4b7136
mov dl, 1
mov eax, dword [ebx + 0x48c]
call fcn.0046b93c
mov eax, dword [ebx + 0x3a0]
mov eax, dword [eax + 0x68]
mov dl, 1
call fcn.004275dc
jmp 0x4b716c
mov eax, dword [0x4d2e28]
cmp dword [eax], 4
jne 0x4b715f
mov dl, 1
mov eax, dword [ebx + 0x4e0]
call fcn.0046b93c
mov eax, dword [ebx + 0x3a0]
mov eax, dword [eax + 0x68]
mov dl, 1
call fcn.004275dc
jmp 0x4b716c
mov dl, 1
mov eax, dword [ebx + 0x320]
call fcn.0046b93c
mov eax, ebx
call fcn.004b7d64
mov eax, dword [0x4d3390]
mov eax, dword [eax]
mov edx, 0x4b76e8
call fcn.00404a60
jne 0x4b7198
mov dl, 1
mov eax, dword [ebx + 0x330]
call fcn.0046b93c
jmp 0x4b7304
mov eax, dword [0x4d3390]
mov eax, dword [eax]
mov edx, 0x4b76f8
call fcn.00404a60
jne 0x4b71bd
mov dl, 1
mov eax, dword [ebx + 0x334]
call fcn.0046b93c
jmp 0x4b7304
mov eax, dword [0x4d3390]
mov eax, dword [eax]
mov edx, 0x4b770c
call fcn.00404a60
jne 0x4b71e2
mov dl, 1
mov eax, dword [ebx + 0x338]
call fcn.0046b93c
jmp 0x4b7304
mov eax, dword [0x4d3390]
mov eax, dword [eax]
mov edx, 0x4b771c
call fcn.00404a60
jne 0x4b7207
mov dl, 1
mov eax, dword [ebx + 0x3a8]
call fcn.0046b93c
jmp 0x4b7304
mov eax, dword [0x4d3390]
mov eax, dword [eax]
mov edx, 0x4b7730
call fcn.00404a60
jne 0x4b722c
mov dl, 1
mov eax, dword [ebx + 0x3ac]
call fcn.0046b93c
jmp 0x4b7304
mov eax, dword [0x4d3390]
mov eax, dword [eax]
mov edx, 0x4b7744
call fcn.00404a60
jne 0x4b7251
mov dl, 1
mov eax, dword [ebx + 0x3b0]
call fcn.0046b93c
jmp 0x4b7304
mov eax, dword [0x4d3390]
mov eax, dword [eax]
mov edx, 0x4b7758
call fcn.00404a60
jne 0x4b7276
mov dl, 1
mov eax, dword [ebx + 0x3b4]
call fcn.0046b93c
jmp 0x4b7304
mov eax, dword [0x4d3390]
mov eax, dword [eax]
mov edx, 0x4b776c
call fcn.00404a60
jne 0x4b7298
mov dl, 1
mov eax, dword [ebx + 0x490]
call fcn.0046b93c
jmp 0x4b7304
mov eax, dword [0x4d3390]
mov eax, dword [eax]
mov edx, 0x4b777c
call fcn.00404a60
jne 0x4b72ba
mov dl, 1
mov eax, dword [ebx + 0x494]
call fcn.0046b93c
jmp 0x4b7304
mov eax, dword [0x4d3390]
mov eax, dword [eax]
mov edx, dword [0x4d2e48]
mov edx, dword [edx + 0x24]
call fcn.00404a60
jne 0x4b72e0
mov dl, 1
mov eax, dword [ebx + 0x4e4]
call fcn.0046b93c
jmp 0x4b7304
mov eax, dword [0x4d3390]
mov eax, dword [eax]
mov edx, dword [0x4d2e48]
mov edx, dword [edx + 0x28]
call fcn.00404a60
jne 0x4b7304
mov dl, 1
mov eax, dword [ebx + 0x4f4]
call fcn.0046b93c
mov esi, dword [ebx + 0x3a0]
mov edx, dword [0x4d31ac]
mov edx, dword [edx]
mov eax, esi
call fcn.00495790
mov edx, dword [0x4d3390]
mov edx, dword [edx]
mov eax, dword [esi + 0x68]
call fcn.004274d4
mov edx, dword [0x4d2e3c]
mov edx, dword [edx]
mov eax, esi
call fcn.004957d0
mov edx, dword [0x4d2e3c]
mov edx, dword [edx]
mov eax, esi
call fcn.004957f4
mov edx, dword [0x4d2e3c]
mov edx, dword [edx]
mov eax, esi
call fcn.00495818
mov edx, dword [0x4d2e3c]
mov edx, dword [edx]
mov eax, esi
call fcn.0049585c
mov edx, dword [0x4d3164]
mov edx, dword [edx]
mov eax, esi
call fcn.00495748
mov eax, dword [0x4d30c8]
cmp byte [eax], 0
je 0x4b7386
mov eax, dword [0x4d31e8]
mov byte [eax], 0
mov edx, dword [0x4d30c8]
mov dl, byte [edx]
mov eax, esi
call fcn.004958e0
mov edx, dword [0x4d31e8]
mov dl, byte [edx]
mov eax, esi
call fcn.00495714
mov edx, dword [0x4d3364]
mov edx, dword [edx]
mov eax, esi
call fcn.004958a0
mov eax, dword [0x4d3070]
cmp byte [eax], 0
je 0x4b73df
xor edx, edx
mov eax, dword [ebx + 0x3a0]
call fcn.00495568
mov eax, dword [ebx + 0x3a0]
mov eax, dword [eax + 0x68]
mov edx, 0xffffff
call fcn.004272ac
jmp 0x4b73ff
mov edx, 0xffffff
mov eax, dword [ebx + 0x3a0]
call fcn.00495568
mov eax, dword [ebx + 0x3a0]
mov eax, dword [eax + 0x68]
xor edx, edx
call fcn.004272ac
mov edx, dword [0x4d3240]
mov edx, dword [edx]
mov eax, esi
call fcn.00495610
mov eax, dword [0x4d2fe0]
mov eax, dword [eax]
call fcn.0040a1e4
test al, al
je 0x4b7445
lea eax, [ebp - 4]
mov edx, dword [0x4d2fe0]
mov edx, dword [edx]
call fcn.00404f48
mov edx, dword [ebp - 4]
mov eax, dword [0x4d30c4]
mov eax, dword [eax]
mov ecx, dword [esi + 0x240]
call fcn.0049390c
jmp 0x4b744f
mov eax, dword [0x4d2fe0]
call fcn.00404644
mov eax, dword [0x4d3088]
mov eax, dword [eax]
mov dword [esi + 0x2c0], eax
mov edx, dword [0x4d3120]
mov edx, dword [edx]
mov eax, esi
call fcn.00495954
mov edx, dword [0x4d3350]
mov edx, dword [edx]
mov eax, esi
call fcn.0049599c
mov eax, dword [0x4d31ac]
cmp dword [eax], 6
jne 0x4b7496
mov dl, 1
mov eax, dword [ebx + 0x49c]
call fcn.0046b93c
jmp 0x4b753c
mov eax, dword [0x4d31ac]
cmp dword [eax], 7
jne 0x4b74b2
mov dl, 1
mov eax, dword [ebx + 0x498]
call fcn.0046b93c
jmp 0x4b753c
mov eax, dword [0x4d31ac]
cmp dword [eax], 8
jne 0x4b74cb
mov dl, 1
mov eax, dword [ebx + 0x324]
call fcn.0046b93c
jmp 0x4b753c
mov eax, dword [0x4d31ac]
cmp dword [eax], 9
jne 0x4b74e4
mov dl, 1
mov eax, dword [ebx + 0x328]
call fcn.0046b93c
jmp 0x4b753c
mov eax, dword [0x4d31ac]
cmp dword [eax], 0xa
jne 0x4b74fd
mov dl, 1
mov eax, dword [ebx + 0x32c]
call fcn.0046b93c
jmp 0x4b753c
mov eax, dword [0x4d31ac]
cmp dword [eax], 0xb
jne 0x4b7516
mov dl, 1
mov eax, dword [ebx + 0x4a8]
call fcn.0046b93c
jmp 0x4b753c
mov eax, dword [0x4d31ac]
cmp dword [eax], 0xc
jne 0x4b752f
mov dl, 1
mov eax, dword [ebx + 0x4a4]
call fcn.0046b93c
jmp 0x4b753c
mov dl, 1
mov eax, dword [ebx + 0x4a0]
call fcn.0046b93c
mov eax, dword [0x4d3364]
cmp dword [eax], 2
jne 0x4b7555
mov dl, 1
mov eax, dword [ebx + 0x364]
call fcn.0046b93c
jmp 0x4b7562
mov dl, 1
mov eax, dword [ebx + 0x360]
call fcn.0046b93c
mov eax, dword [0x4d3290]
cmp dword [eax], 1
jne 0x4b757b
mov dl, 1
mov eax, dword [ebx + 0x4c8]
call fcn.0046b93c
jmp 0x4b7588
mov dl, 1
mov eax, dword [ebx + 0x4c4]
call fcn.0046b93c
mov edx, dword [0x4d3070]
mov dl, byte [edx]
mov eax, dword [ebx + 0x304]
call fcn.0046b93c
mov edx, dword [0x4d31c8]
mov dl, byte [edx]
mov eax, dword [ebx + 0x300]
call fcn.0046b93c
mov eax, dword [0x4d327c]
mov eax, dword [eax]
sub eax, 2
je 0x4b75c5
dec eax
je 0x4b75d4
dec eax
je 0x4b75e3
dec eax
je 0x4b75f2
jmp 0x4b7601
mov dl, 1
mov eax, dword [ebx + 0x4ec]
call fcn.0046b93c
jmp 0x4b760e
mov dl, 1
mov eax, dword [ebx + 0x4fc]
call fcn.0046b93c
jmp 0x4b760e
mov dl, 1
mov eax, dword [ebx + 0x508]
call fcn.0046b93c
jmp 0x4b760e
mov dl, 1
mov eax, dword [ebx + 0x4f0]
call fcn.0046b93c
jmp 0x4b760e
mov dl, 1
mov eax, dword [ebx + 0x480]
call fcn.0046b93c
mov edx, dword [0x4d31e8]
mov dl, byte [edx]
mov eax, dword [ebx + 0x384]
call fcn.0043a0a0
mov edx, dword [0x4d31e8]
mov dl, byte [edx]
mov eax, dword [ebx + 0x384]
call fcn.00439f6c
mov edx, dword [0x4d338c]
mov dl, byte [edx]
mov eax, dword [ebx + 0x380]
call fcn.0043a0a0
mov edx, dword [0x4d338c]
mov dl, byte [edx]
mov eax, dword [ebx + 0x380]
call fcn.00439f6c
mov eax, dword [ebx + 0x40c]
mov eax, dword [eax + 0x34]
call fcn.0046ba64
mov esi, eax
dec esi
test esi, esi
jl 0x4b7696
inc esi
xor edi, edi
mov eax, dword [ebx + 0x40c]
mov eax, dword [eax + 0x34]
mov edx, edi
call fcn.0046ba74
mov edx, dword [0x4d338c]
mov dl, byte [edx]
xor dl, 1
call fcn.0046b990
inc edi
dec esi
jne 0x4b7672
mov edx, dword [0x4d30c8]
mov dl, byte [edx]
mov eax, dword [ebx + 0x3f0]
call fcn.0046b93c
mov edx, dword [0x4d3310]
mov dl, byte [edx]
mov eax, dword [ebx + 0x484]
call fcn.0046b93c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b76d9
lea eax, [ebp - 4]
call fcn.00404d88
ret