Function at 0x1000cfb0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1007c63c
mov eax, dword fs:[0]
push eax
mov eax, 0x15a4
call fcn.1007b840
mov eax, dword [0x1009400c]
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 ecx, 0x101f4ae0
call fcn.1000e290
lea ecx, [ebp - 0x1578]
call dword [sym.imp.Common.dll_public:_void___thiscall_INI_Reader::constructor_void_]
push 0
push str..._data_fx_effects.ini
lea ecx, [ebp - 0x1578]
mov dword [ebp - 4], 0
call dword [sym.imp.Common.dll_public:_bool___thiscall_INI_Reader::open_char_const___bool_]
test al, al
je 0x1000d466
lea ecx, [ebp - 0x1578]
call dword [sym.imp.Common.dll_public:_bool___thiscall_INI_Reader::read_header_void_]
mov ebx, dword [sym.imp.Common.dll_public:_bool___thiscall_INI_Reader::read_value_void_]
mov esi, dword [sym.imp.Common.dll_public:_bool___thiscall_INI_Reader::is_value_char_const__]
mov edi, dword [sym.imp.Common.dll_public:_char_const____thiscall_INI_Reader::get_value_string_void_]
test al, al
je 0x1000d2ca
push str.Effect
lea ecx, [ebp - 0x1578]
call dword [sym.imp.Common.dll_public:_bool___thiscall_INI_Reader::is_header_char_const__]
test al, al
je 0x1000d2b6
push 0
mov dword [ebp - 0x1594], 0
lea ecx, [ebp - 0x1594]
push 0x1008752b
mov dword [ebp - 0x15a0], 0x3f800000
mov dword [ebp - 0x159c], 0x3f800000
mov dword [ebp - 0x1598], 0x3f800000
mov dword [ebp - 0x1584], 0
mov dword [ebp - 0x1580], 0xf
mov byte [ebp - 0x1594], 0
call fcn.10004a90
mov dword [ebp - 0x157c], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1578]
mov dword [ebp - 0x15a4], 0
call ebx
test al, al
je 0x1000d1bc
nop word [eax + eax]
push str.nickname
lea ecx, [ebp - 0x1578]
call esi
lea ecx, [ebp - 0x1578]
test al, al
je 0x1000d10e
call edi
push eax
call dword [sym.imp.Common.dll_unsigned_int___cdecl_CreateID_char_const__]
add esp, 4
mov dword [ebp - 0x15a4], eax
jmp 0x1000d1ac
push str.xbeam_width
call esi
lea ecx, [ebp - 0x1578]
test al, al
je 0x1000d12f
push 0
call dword [sym.imp.Common.dll_public:_float___thiscall_INI_Reader::get_value_float_unsigned_int_]
fstp dword [ebp - 0x15a0]
jmp 0x1000d1ac
push str.xbeam_length
call esi
lea ecx, [ebp - 0x1578]
test al, al
je 0x1000d150
push 0
call dword [sym.imp.Common.dll_public:_float___thiscall_INI_Reader::get_value_float_unsigned_int_]
fstp dword [ebp - 0x159c]
jmp 0x1000d1ac
push str.xbeam_taper
call esi
lea ecx, [ebp - 0x1578]
test al, al
je 0x1000d171
push 0
call dword [sym.imp.Common.dll_public:_float___thiscall_INI_Reader::get_value_float_unsigned_int_]
fstp dword [ebp - 0x1598]
jmp 0x1000d1ac
push str.xbeam_texture
call esi
test al, al
je 0x1000d1ac
lea ecx, [ebp - 0x1578]
call edi
mov edx, eax
lea ebx, [edx + 1]
nop dword [eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x1000d190
sub edx, ebx
lea ecx, [ebp - 0x1594]
push edx
push eax
call fcn.10004a90
mov ebx, dword [sym.imp.Common.dll_public:_bool___thiscall_INI_Reader::read_value_void_]
lea ecx, [ebp - 0x1578]
call ebx
test al, al
jne 0x1000d0e0
cmp dword [ebp - 0x15a4], 0
mov ebx, dword [ebp - 0x1580]
mov edi, dword [ebp - 0x1594]
je 0x1000d278
mov edx, dword [ebp - 0x1584]
lea ecx, [ebp - 0x1594]
cmp ebx, 0x10
push 0
cmovae ecx, edi
push 0x1008752b
call fcn.10009550
add esp, 8
test al, al
jne 0x1000d278
lea eax, [ebp - 0x15a4]
push eax
lea eax, [ebp - 0x15b0]
push eax
call fcn.1000f740
movss xmm0, dword [ebp - 0x15a0]
mov eax, dword [eax]
add eax, 0xc
mov dword [ebp - 0x15a8], eax
movss dword [eax], xmm0
lea ecx, [eax + 0xc]
movss xmm0, dword [ebp - 0x159c]
movss dword [eax + 4], xmm0
movss xmm0, dword [ebp - 0x1598]
movss dword [eax + 8], xmm0
lea eax, [ebp - 0x1594]
cmp ecx, eax
je 0x1000d269
push dword [ebp - 0x1584]
cmp ebx, 0x10
cmovae eax, edi
push eax
call fcn.10004a90
mov ebx, dword [ebp - 0x1580]
mov edi, dword [ebp - 0x1594]
mov ecx, dword [ebp - 0x15a8]
mov eax, dword [ebp - 0x157c]
mov dword [ecx + 0x24], eax
mov byte [ebp - 4], 0
cmp ebx, 0x10
jb 0x1000d2aa
inc ebx
mov eax, edi
cmp ebx, 0x1000
jb 0x1000d2a0
mov edi, dword [edi - 4]
add ebx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000d368
push ebx
push edi
call fcn.1004d7a1
add esp, 8
mov ebx, dword [sym.imp.Common.dll_public:_bool___thiscall_INI_Reader::read_value_void_]
mov edi, dword [sym.imp.Common.dll_public:_char_const____thiscall_INI_Reader::get_value_string_void_]
lea ecx, [ebp - 0x1578]
call dword [sym.imp.Common.dll_public:_bool___thiscall_INI_Reader::read_header_void_]
test al, al
jne 0x1000d040
lea ecx, [ebp - 0x1578]
call dword [sym.imp.Common.dll_public:_void___thiscall_INI_Reader::close_void_]
push 0
push str..._data_equipment_weapon_equip.ini
lea ecx, [ebp - 0x1578]
call dword [sym.imp.Common.dll_public:_bool___thiscall_INI_Reader::open_char_const___bool_]
test al, al
je 0x1000d466
lea ecx, [ebp - 0x1578]
call dword [sym.imp.Common.dll_public:_bool___thiscall_INI_Reader::read_header_void_]
test al, al
je 0x1000d45a
push str.Munition
lea ecx, [ebp - 0x1578]
call dword [sym.imp.Common.dll_public:_bool___thiscall_INI_Reader::is_header_char_const__]
test al, al
je 0x1000d440
xor ebx, ebx
mov dword [ebp - 0x15a8], 0
lea ecx, [ebp - 0x1578]
mov dword [ebp - 0x15a4], ebx
call dword [sym.imp.Common.dll_public:_bool___thiscall_INI_Reader::read_value_void_]
test al, al
je 0x1000d3a3
push str.nickname
lea ecx, [ebp - 0x1578]
call esi
lea ecx, [ebp - 0x1578]
test al, al
je 0x1000d36e
call edi
push eax
call dword [sym.imp.Common.dll_unsigned_int___cdecl_CreateID_char_const__]
mov dword [ebp - 0x15a8], eax
jmp 0x1000d38a
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push str.const_effect
call esi
test al, al
je 0x1000d38d
lea ecx, [ebp - 0x1578]
call edi
push eax
call dword [sym.imp.Common.dll_unsigned_int___cdecl_CreateID_char_const__]
mov ebx, eax
add esp, 4
lea ecx, [ebp - 0x1578]
call dword [sym.imp.Common.dll_public:_bool___thiscall_INI_Reader::read_value_void_]
test al, al
jne 0x1000d340
mov dword [ebp - 0x15a4], ebx
cmp dword [ebp - 0x15a8], 0
je 0x1000d440
test ebx, ebx
je 0x1000d440
movzx eax, bl
xor eax, 0x811c9dc5
mov edx, dword [0x101f4ba4]
imul ecx, eax, 0x1000193
movzx eax, bh
xor ecx, eax
movzx eax, byte [ebp - 0x15a2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebp - 0x15a1]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [0x101f4bac]
and eax, dword [0x101f4bb8]
mov edi, dword [ecx + eax*8 + 4]
cmp edi, edx
je 0x1000d440
mov eax, dword [ecx + eax*8]
cmp ebx, dword [edi + 8]
je 0x1000d41d
cmp edi, eax
je 0x1000d440
mov edi, dword [edi + 4]
cmp ebx, dword [edi + 8]
jne 0x1000d411
test edi, edi
je 0x1000d440
cmp edi, edx
je 0x1000d440
lea eax, [ebp - 0x15a8]
push eax
lea eax, [ebp - 0x15b0]
push eax
call fcn.1000f9e0
lea ecx, [edi + 0xc]
mov eax, dword [eax]
mov dword [eax + 0xc], ecx
lea ecx, [ebp - 0x1578]
call dword [sym.imp.Common.dll_public:_bool___thiscall_INI_Reader::read_header_void_]
mov edi, dword [sym.imp.Common.dll_public:_char_const____thiscall_INI_Reader::get_value_string_void_]
test al, al
jne 0x1000d305
lea ecx, [ebp - 0x1578]
call dword [sym.imp.Common.dll_public:_void___thiscall_INI_Reader::close_void_]
lea ecx, [ebp - 0x1578]
call dword [sym.imp.Common.dll_public:_void___thiscall_INI_Reader::destructor_void_]
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.1004d763
mov esp, ebp
pop ebp
ret