Function at 0x404dc4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
movsx edx, word [0x46b0b6]
movsx eax, word [0x46b0a8]
add esp, 0xffffffb0
add eax, edx
movsx ecx, word [0x46b0b4]
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
mov dword [ebp - 8], eax
shl dword [ebp - 8], 4
add dword [ebp - 8], ecx
xor ebx, ebx
mov eax, dword [ebp - 8]
mov dword [0x46b1c4], eax
lea eax, [ebp - 0x44]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x14]
mov ecx, dword [0x46b1c4]
mov dword [edx], ecx
push 0
mov eax, dword [0x46b1c4]
push eax
push esi
call fcn.0042e350
add esp, 0xc
push esi
push 0xa
push 1
lea edx, [ebp - 0x50]
push edx
call fcn.0042e2b0
movsx eax, bx
mov di, 0xfffe
add esp, 0x10
mov word [ebp - 2], 0
cmp eax, 8
ja case.0x404e44.0
jmp dword [eax*4 + 0x404e4b]
push 0
push 0x16
lea edx, [ebp - 0x50]
push edx
call fcn.00404a14
add esp, 0xc
mov edi, eax
cmp ax, 0xffff
jne 0x404ea6
push 0
push 0xe
lea edx, [ebp - 0x50]
push edx
call fcn.00404a14
add esp, 0xc
mov edi, eax
cmp ax, 0xffff
jne 0x404ea6
xor eax, eax
jmp 0x405126
inc word [ebp - 2]
jmp case.0x404e44.0
push 0
push 0x1f
lea edx, [ebp - 0x50]
push edx
call fcn.00404a14
add esp, 0xc
mov edi, eax
cmp di, 0xffff
sete cl
and ecx, 1
test cl, cl
je 0x404ed6
xor eax, eax
jmp 0x405126
inc word [ebp - 2]
jmp case.0x404e44.0
push 1
push 0xb8
lea edx, [ebp - 0x50]
push edx
call fcn.00404a14
add esp, 0xc
mov edi, eax
cmp di, 0xffff
sete cl
and ecx, 1
test cl, cl
je 0x404f09
xor eax, eax
jmp 0x405126
movsx eax, di
lea edx, [ebp - 0x4f]
add eax, edx
mov cx, word [eax]
mov word [ebp - 0xa], cx
mov word [ebp - 2], 3
jmp case.0x404e44.0
push 1
push 0xb8
lea eax, [ebp - 0x50]
push eax
call fcn.00404a14
add esp, 0xc
mov edi, eax
cmp di, 0xffff
sete dl
and edx, 1
test dl, dl
je 0x404f4d
xor eax, eax
jmp 0x405126
movsx eax, di
lea edx, [ebp - 0x4f]
add eax, edx
mov cx, word [eax]
mov word [ebp - 0xc], cx
mov word [ebp - 2], 3
jmp case.0x404e44.0
push 0
push 0x81
lea eax, [ebp - 0x50]
push eax
call fcn.00404a14
add esp, 0xc
mov edi, eax
cmp di, 0xffff
sete dl
and edx, 1
test dl, dl
je 0x404f8e
xor eax, eax
jmp 0x405126
movsx eax, di
lea edx, [ebp - 0x4e]
add eax, edx
mov cx, word [eax]
mov word [ebp - 0xe], cx
mov word [ebp - 2], 4
jmp case.0x404e44.0
push 0
push 0x81
lea eax, [ebp - 0x50]
push eax
call fcn.00404a14
add esp, 0xc
mov edi, eax
cmp di, 0xffff
sete dl
and edx, 1
test dl, dl
je 0x404fcf
xor eax, eax
jmp 0x405126
mov word [ebp - 2], 4
mov dx, word [ebp - 2]
lea ecx, [ebp - 0x50]
push edx
push edi
push ecx
mov eax, dword [0x46b1c4]
push eax
call fcn.004049ac
add esp, 0x10
mov dword [0x46b1c4], eax
cmp dword [0x46b1c4], 0xffffffff
sete dl
and edx, 1
test dl, dl
je 0x40500a
xor eax, eax
jmp 0x405126
inc ebx
add dword [ebp - 0x14], 4
cmp bx, 0xa
jl 0x404e01
push 1
push esi
push 0xe
call fcn.00401410
add esp, 0xc
dec eax
je 0x405030
xor eax, eax
jmp 0x405126
movzx eax, word [ebp - 0xa]
movzx edx, word [0x46b0b4]
add eax, dword [ebp - 8]
push 0
sub eax, edx
push eax
push esi
mov dword [0x46b1c4], eax
call fcn.0042e350
add esp, 0xc
push 0xc8
call fcn.0042b7bc
pop ecx
mov edi, eax
push esi
push 0xc8
push 1
push edi
call fcn.0042e2b0
add esp, 0x10
xor ebx, ebx
movsx eax, bx
add eax, edi
mov dx, word [ebp - 0xc]
xor word [eax], dx
mov cx, word [ebp - 0xe]
add word [ebp - 0xc], cx
inc ebx
cmp bx, 0xc8
jl 0x405071
push 0
push 0
push esi
call fcn.0042e350
add esp, 0xc
xor ebx, ebx
mov dword [ebp - 0x18], 0x46b0a0
lea eax, [edi + 0x10]
mov dl, byte [eax]
mov ecx, dword [ebp - 0x18]
mov byte [ecx], dl
inc ebx
inc dword [ebp - 0x18]
inc eax
cmp bx, 0x1a
jl 0x4050a6
push esi
push 0x1a
push 1
push 0x46b0a0
call fcn.0042e540
add esp, 0x10
lea eax, [ebp - 0x44]
mov dword [ebp - 0x1c], eax
xor ebx, ebx
push 0
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx]
push ecx
push esi
call fcn.0042e350
movsx eax, bx
mov edx, eax
add esp, 0xc
add edx, edx
push esi
push 0xa
push 1
lea edx, [edx + edx*4]
add edx, edi
add edx, 0x40
push edx
call fcn.0042e540
add esp, 0x10
inc ebx
add dword [ebp - 0x1c], 4
cmp bx, 0xa
jl 0x4050d2
push edi
call fcn.0042b7cc
pop ecx
push esi
call fcn.00418690
pop ecx
inc eax
jne 0x405121
or eax, 0xffffffff
jmp 0x405126
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret