Function at 0x438210
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c72fb
mov eax, dword fs:[0]
push eax
mov eax, 0x1048
call fcn.004bb0b0
mov eax, dword [0x506040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1038], ecx
push 0x4e0e80
lea eax, [ebp - 0x1034]
mov dword [ebp - 0x1034], 0
push str.KyTable.txt
push eax
call dword [sym.imp.MSVCR120.dll_fopen_s]
add esp, 0xc
test eax, eax
je 0x438277
xor eax, eax
jmp 0x43857a
mov esi, dword [ebp - 0x1034]
test esi, esi
je 0x438270
push 0x800
lea eax, [ebp - 0x814]
push 0
push eax
call sub.MSVCR120.dll_memset
mov edi, dword [sym.imp.MSVCR120.dll_fgets]
lea eax, [ebp - 0x814]
push esi
push 0x7ff
push eax
call edi
mov ebx, dword [sym.imp.MSVCR120.dll_strnlen]
add esp, 0x18
test eax, eax
je 0x4382ee
lea eax, [ebp - 0x814]
push 0x7ff
push eax
call ebx
dec eax
add esp, 8
test eax, eax
jle 0x4382ee
lea esp, [esp]
mov cl, byte [ebp + eax - 0x814]
cmp cl, 0xd
je 0x4382e1
cmp cl, 0xa
jne 0x4382ee
mov byte [ebp + eax - 0x814], 0
dec eax
test eax, eax
jg 0x4382d0
lea eax, [ebp - 0x814]
push 0x800
push eax
call ebx
add esp, 8
cmp eax, 4
jb 0x43830c
push dword [ebp - 0x814]
jmp 0x43830e
push 0
call dword [sym.imp.MSVCR120.dll_srand]
add esp, 4
push 0
push 0
push dword [ebp - 0x1034]
call dword [sym.imp.MSVCR120.dll_fseek]
add esp, 0xc
jmp 0x438336
mov ebx, dword [sym.imp.MSVCR120.dll_strnlen]
push dword [ebp - 0x1034]
lea eax, [ebp - 0x814]
push 0x7ff
push eax
call edi
add esp, 0xc
test eax, eax
je 0x438557
lea eax, [ebp - 0x814]
push 0x7ff
push eax
call ebx
dec eax
add esp, 8
test eax, eax
jle 0x43838e
jmp 0x438370
mov cl, byte [ebp + eax - 0x814]
cmp cl, 0xd
je 0x438381
cmp cl, 0xa
jne 0x43838e
mov byte [ebp + eax - 0x814], 0
dec eax
test eax, eax
jg 0x438370
push 0x800
lea eax, [ebp - 0x1014]
push 0
push eax
call sub.MSVCR120.dll_memset
lea eax, [ebp - 0x814]
push 0x800
push eax
call ebx
mov esi, eax
add esp, 0x14
test esi, esi
jle 0x438336
call dword [sym.imp.MSVCR120.dll_rand]
cdq
idiv esi
mov edi, edx
test edi, edi
jne 0x4383d4
mov eax, esi
cdq
sub eax, edx
mov edi, eax
sar edi, 1
mov ebx, dword [sym.imp.MSVCR120.dll_strncpy_s]
lea eax, [ebp - 0x814]
sub esi, edi
add eax, edi
push esi
push eax
lea eax, [ebp - 0x1014]
push 0x800
push eax
call ebx
push edi
lea eax, [ebp - 0x814]
push eax
mov eax, 0x800
sub eax, esi
push eax
lea eax, [ebp - 0x1014]
add eax, esi
push eax
call ebx
add esp, 0x20
mov dword [ebp - 0x101c], 0xf
mov dword [ebp - 0x1020], 0
mov byte [ebp - 0x1030], 0
mov dword [ebp - 4], 0
cmp byte [ebp - 0x1014], 0
jne 0x438441
xor ecx, ecx
jmp 0x438459
lea ecx, [ebp - 0x1014]
lea edx, [ecx + 1]
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x438450
sub ecx, edx
push ecx
lea eax, [ebp - 0x1014]
push eax
lea ecx, [ebp - 0x1030]
call fcn.0040f700
cmp byte [ebp - 0x1014], 0
mov dword [ebp - 0x103c], 0xf
mov dword [ebp - 0x1040], 0
mov byte [ebp - 0x1050], 0
jne 0x438494
xor ecx, ecx
jmp 0x4384a9
lea ecx, [ebp - 0x1014]
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4384a0
sub ecx, edx
push ecx
lea eax, [ebp - 0x1014]
push eax
lea ecx, [ebp - 0x1050]
call fcn.0040f700
mov eax, dword [ebp - 0x103c]
lea esi, [ebp - 0x1050]
mov ebx, dword [ebp - 0x1050]
cmp eax, 0x10
mov edi, dword [ebp - 0x1040]
mov edx, 0x811c9dc5
cmovae esi, ebx
xor ecx, ecx
test edi, edi
je 0x4384fc
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x4384e5
mov eax, dword [ebp - 0x103c]
mov dword [ebp - 0x1018], edx
cmp eax, 0x10
jb 0x438515
push ebx
mov ebx, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
call ebx
add esp, 4
jmp 0x43851b
mov ebx, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
mov ecx, dword [ebp - 0x1038]
lea eax, [ebp - 0x1030]
push eax
call fcn.00438670
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x101c], 0x10
mov edi, dword [sym.imp.MSVCR120.dll_fgets]
jb 0x438330
push dword [ebp - 0x1030]
call ebx
add esp, 4
jmp 0x438330
push dword [ebp - 0x1034]
call dword [sym.imp.MSVCR120.dll_fclose]
push 0
call dword [sym.imp.MSVCR120.dll__time64]
push eax
call dword [sym.imp.MSVCR120.dll_srand]
add esp, 0xc
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004ba66b
mov esp, ebp
pop ebp
ret 4