Function at 0x401690
Capabilities:
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x84
mov al, byte [ecx]
mov dword [esp + 0x34], ecx
mov dword [esp + 0xc], 0x84222325
mov dword [esp + 0x10], 0x842224d8
mov dword [esp + 0x18], 0x8422268b
mov dword [esp + 0x14], 0xcbf29ee4
mov dword [esp + 0x20], 0x8422283e
mov dword [esp + 0x1c], 0xcbf29fe4
mov dword [esp + 0x28], 0x842229f1
mov dword [esp + 0x24], 0xcbf2a0e4
mov dword [esp + 0x30], 0x84222ba4
mov dword [esp + 0x2c], 0xcbf2a1e4
push ebx
mov ebx, 0xcbf29de4
mov dword [esp + 0xc], ebx
push esi
mov esi, 0xcbf29ce4
push edi
mov edi, edx
mov dword [esp + 0x48], edi
test al, al
je 0x40193a
movsx eax, al
cdq
mov ebx, eax
mov eax, edx
mov ecx, eax
mov dword [esp + 0x10], eax
xor ecx, esi
mov edi, ebx
xor edi, dword [esp + 0x18]
mov esi, ecx
shld ecx, edi, 7
push pe_nt_image_headers32
xor eax, eax
shr esi, 0x19
push 0x1b3
or eax, ecx
shl edi, 7
push eax
or esi, edi
push esi
call fcn.00416160
mov ecx, eax
xor esi, esi
shrd eax, edx, 5
push 0xffffffffffffffff
shl ecx, 0x1b
or esi, eax
shr edx, 5
push 0xffffffffffffffff
or ecx, edx
push ecx
push esi
call fcn.00416750
mov ecx, dword [esp + 0x10]
mov edi, ebx
xor ecx, dword [esp + 0x14]
xor edi, dword [esp + 0x1c]
mov esi, ecx
mov dword [esp + 0x18], eax
xor eax, eax
shld ecx, edi, 8
push pe_nt_image_headers32
push 0x1b3
or eax, ecx
shr esi, 0x18
shl edi, 8
push eax
or esi, edi
mov dword [esp + 0x50], edx
push esi
call fcn.00416160
mov ecx, eax
xor esi, esi
shrd eax, edx, 6
push 0xffffffffffffffff
shl ecx, 0x1a
or esi, eax
shr edx, 6
push 0xffffffffffffffff
or ecx, edx
push ecx
push esi
call fcn.00416750
mov ecx, dword [esp + 0x10]
mov edi, ebx
xor ecx, dword [esp + 0x20]
xor edi, dword [esp + 0x24]
mov esi, ecx
mov dword [esp + 0x1c], eax
xor eax, eax
shld ecx, edi, 9
push pe_nt_image_headers32
push 0x1b3
shr esi, 0x17
or eax, ecx
shl edi, 9
or esi, edi
mov dword [esp + 0x1c], edx
push eax
push esi
call fcn.00416160
mov ecx, eax
xor esi, esi
shrd eax, edx, 7
push 0xffffffffffffffff
shl ecx, 0x19
or esi, eax
shr edx, 7
push 0xffffffffffffffff
or ecx, edx
push ecx
push esi
call fcn.00416750
mov ecx, dword [esp + 0x10]
mov edi, ebx
xor ecx, dword [esp + 0x28]
xor edi, dword [esp + 0x2c]
mov esi, ecx
mov dword [esp + 0x24], eax
xor eax, eax
shld ecx, edi, 0xa
push pe_nt_image_headers32
push 0x1b3
or eax, ecx
shr esi, 0x16
shl edi, 0xa
push eax
or esi, edi
mov dword [esp + 0x2c], edx
push esi
call fcn.00416160
mov ecx, eax
xor esi, esi
shrd eax, edx, 8
push 0xffffffffffffffff
shl ecx, 0x18
or esi, eax
shr edx, 8
push 0xffffffffffffffff
or ecx, edx
push ecx
push esi
call fcn.00416750
mov ecx, dword [esp + 0x10]
mov edi, ebx
xor ecx, dword [esp + 0x30]
xor edi, dword [esp + 0x34]
mov esi, ecx
mov dword [esp + 0x2c], eax
xor eax, eax
shld ecx, edi, 0xb
push pe_nt_image_headers32
push 0x1b3
or eax, ecx
shr esi, 0x15
shl edi, 0xb
push eax
or esi, edi
mov dword [esp + 0x34], edx
push esi
call fcn.00416160
mov ecx, eax
xor esi, esi
shrd eax, edx, 9
push 0xffffffffffffffff
shl ecx, 0x17
or esi, eax
shr edx, 9
push 0xffffffffffffffff
or ecx, edx
push ecx
push esi
call fcn.00416750
xor ebx, dword [esp + 0x3c]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x10]
xor edx, dword [esp + 0x38]
mov ecx, edx
mov dword [esp + 0x34], eax
shr ecx, 0x14
xor eax, eax
shld edx, ebx, 0xc
push pe_nt_image_headers32
push 0x1b3
or eax, edx
shl ebx, 0xc
or ecx, ebx
push eax
push ecx
call fcn.00416160
mov ecx, eax
xor esi, esi
shrd eax, edx, 0xa
push 0xffffffffffffffff
shl ecx, 0x16
or esi, eax
shr edx, 0xa
push 0xffffffffffffffff
or ecx, edx
push ecx
push esi
call fcn.00416750
mov esi, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x40], eax
mov al, byte [eax]
test al, al
jne 0x401711
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x14]
push 0xff51afd7
xor eax, eax
mov ecx, esi
push 0xed558ccd
shr ecx, 1
xor eax, esi
xor ecx, dword [esp + 0x20]
push eax
push ecx
call fcn.00416160
push 0xc4ceb9fe
mov esi, edx
xor ecx, ecx
push 0x1a85ec53
xor ecx, edx
shr esi, 1
xor esi, eax
push ecx
push esi
call fcn.00416160
xor ecx, ecx
mov esi, edx
xor ecx, edx
shr esi, 1
xor esi, eax
mov dword [esp + 0x64], ecx
push 0xff51afd7
xor eax, eax
mov dword [esp + 0x64], esi
mov ecx, ebx
xor eax, ebx
push 0xed558ccd
shr ecx, 1
xor ecx, dword [esp + 0x24]
push eax
push ecx
call fcn.00416160
push 0xc4ceb9fe
mov esi, edx
xor ecx, ecx
push 0x1a85ec53
xor ecx, edx
shr esi, 1
xor esi, eax
push ecx
push esi
call fcn.00416160
xor ecx, ecx
mov esi, edx
xor ecx, edx
shr esi, 1
xor esi, eax
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x20]
xor eax, eax
xor eax, dword [esp + 0x20]
push 0xff51afd7
push 0xed558ccd
shr ecx, 1
xor ecx, dword [esp + 0x2c]
push eax
push ecx
mov dword [esp + 0x78], esi
call fcn.00416160
push 0xc4ceb9fe
mov esi, edx
xor ecx, ecx
push 0x1a85ec53
xor ecx, edx
shr esi, 1
xor esi, eax
push ecx
push esi
call fcn.00416160
mov esi, edx
xor ecx, ecx
shr esi, 1
xor esi, eax
xor ecx, edx
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x28]
xor eax, eax
xor eax, dword [esp + 0x28]
push 0xff51afd7
push 0xed558ccd
shr ecx, 1
xor ecx, dword [esp + 0x34]
push eax
push ecx
call fcn.00416160
push 0xc4ceb9fe
mov esi, edx
xor ecx, ecx
push 0x1a85ec53
xor ecx, edx
shr esi, 1
xor esi, eax
push ecx
push esi
call fcn.00416160
xor ecx, ecx
mov esi, edx
xor ecx, edx
shr esi, 1
xor esi, eax
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x30]
xor eax, eax
xor eax, dword [esp + 0x30]
push 0xff51afd7
push 0xed558ccd
shr ecx, 1
xor ecx, dword [esp + 0x3c]
push eax
push ecx
mov dword [esp + 0x88], esi
call fcn.00416160
push 0xc4ceb9fe
mov esi, edx
xor ecx, ecx
push 0x1a85ec53
xor ecx, edx
shr esi, 1
xor esi, eax
push ecx
push esi
call fcn.00416160
xor ecx, ecx
mov esi, edx
xor ecx, edx
shr esi, 1
xor esi, eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x38]
xor eax, eax
xor eax, dword [esp + 0x38]
push 0xff51afd7
push 0xed558ccd
shr ecx, 1
xor ecx, dword [esp + 0x44]
push eax
push ecx
mov dword [esp + 0x90], esi
call fcn.00416160
push 0xc4ceb9fe
mov esi, edx
xor ecx, ecx
push 0x1a85ec53
xor ecx, edx
shr esi, 1
xor esi, eax
push ecx
push esi
call fcn.00416160
mov esi, edx
xor ecx, ecx
shr esi, 1
xor esi, eax
xor ecx, edx
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], ecx
xor ebx, ebx
nop word [eax + eax]
push dword [esp + ebx*8 + 0x64]
lea eax, [esp + 0x50]
push dword [esp + ebx*8 + 0x64]
push str._016llx
push eax
call fcn.00401670
lea eax, [esp + 0x5c]
add esp, 0x10
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401b40
sub eax, esi
dec edi
nop word [eax + eax]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x401b50
mov ecx, eax
inc ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x48]
cmp ebx, 6
jl 0x401b20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret