Function at 0x1003e8e0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
mov ecx, dword [ebp + 0xc]
push 0xffffffffffffffff
push 0x100b2c20
push eax
mov dword fs:[0], esp
sub esp, 0x44
push ebx
mov ebx, dword [ecx + 0x34]
push esi
push edi
mov eax, dword [ebx + 0x18]
mov al, byte [eax + 0x89]
cmp al, 3
je 0x1003e919
cmp al, 8
jne 0x1003ee3c
cmp dword [0x100e8908], 0
jbe 0x1003e9be
mov ebx, dword [ebx + 0x28]
mov eax, ebx
shr eax, 8
movzx ecx, al
movzx eax, bl
xor eax, 0x811c9dc5
mov esi, dword [0x100e890c]
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul ecx, ecx, 0x1000193
and ecx, dword [0x100e8918]
mov eax, dword [esi + ecx*8]
add ecx, ecx
mov edi, dword [esi + ecx*4]
lea edx, [ecx*4 + 4]
mov dword [ebp - 0x10], edx
mov edx, dword [0x100e8904]
cmp edi, edx
jne 0x1003e990
mov ecx, edx
jmp 0x1003e998
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + esi]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x1003e9be
cmp dword [eax + 8], ebx
je 0x1003e9a5
mov eax, dword [eax]
jmp 0x1003e988
cmp eax, edx
je 0x1003e9be
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [0x100e88c8], 0
jbe 0x1003ea55
mov ebx, dword [ebp + 8]
mov esi, dword [0x100e88cc]
mov ebx, dword [ebx + 4]
mov eax, ebx
shr eax, 8
movzx ecx, al
movzx eax, bl
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul ecx, ecx, 0x1000193
and ecx, dword [0x100e88d8]
mov eax, dword [esi + ecx*8]
add ecx, ecx
mov edi, dword [esi + ecx*4]
lea edx, [ecx*4 + 4]
mov dword [ebp - 0x10], edx
mov edx, dword [0x100e88c4]
cmp edi, edx
jne 0x1003ea38
mov ecx, edx
jmp 0x1003ea40
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + esi]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x1003ea55
cmp dword [eax + 8], ebx
je 0x1003ea4d
mov eax, dword [eax]
jmp 0x1003ea30
cmp eax, edx
jne 0x1003e9a9
mov edx, dword [ebp + 8]
add edx, 0x10
cmp dword [edx + 0x14], 0x10
jb 0x1003ea63
mov edx, dword [edx]
mov ecx, edx
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], 0
lea esi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1003ea80
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x30]
call fcn.10011b50
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x30]
cmp dword [ebp - 0x1c], 0x10
mov edx, dword [ebp - 0x20]
cmovae ecx, dword [ebp - 0x30]
push 8
push str.GIGONGTA
push ecx
call fcn.10008190
add esp, 0xc
cmp eax, 0xffffffff
jne 0x1003ee0c
cmp byte [0x100e807e], 0
mov ebx, dword [ebp + 0x10]
je 0x1003eb10
mov eax, dword [ebx]
mov ecx, ebx
push 0xdd87
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 8], 2
lea eax, [ebp + 8]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], 0x404090
mov edx, dword [ebp - 0x10]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x14]
call dword [ebp - 0x18]
mov eax, dword [ebx]
mov ecx, ebx
push esi
mov eax, dword [eax + 0x27c]
call eax
mov dx, word [0x100e80b0]
mov eax, 0x64a
cmp dx, ax
je 0x1003eb2b
mov eax, 0x669
cmp dx, ax
jne 0x1003eb95
mov eax, dword [ebx]
mov ecx, ebx
push 0x30cf
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 8], 0xd6
lea eax, [ebp + 8]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x404090
mov edx, dword [ebp - 0x18]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x10]
call dword [ebp - 0x14]
lea eax, [ebp + 8]
mov byte [ebp + 8], 1
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x404090
mov edx, dword [ebp - 0x18]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x10]
call dword [ebp - 0x14]
mov eax, dword [ebx]
mov ecx, ebx
push esi
mov eax, dword [eax + 0x27c]
call eax
mov dx, word [0x100e80b0]
mov eax, 0x652
cmp dx, ax
je 0x1003ebf3
mov eax, 0x6e2
cmp dx, ax
je 0x1003ebf3
mov eax, 0x8c4
cmp dx, ax
je 0x1003ebf3
call fcn.1001f9c0
test al, al
jne 0x1003ebf3
mov eax, 0x570
cmp dx, ax
je 0x1003ebf3
mov eax, 0x787
cmp dx, ax
je 0x1003ebf3
mov eax, 0x533
cmp dx, ax
je 0x1003ebf3
call fcn.1001f9e0
test al, al
jne 0x1003ebf3
cmp dx, 0x6d
je 0x1003ebf3
mov eax, 0x857
cmp dx, ax
jne 0x1003ec56
mov eax, dword [ebx]
mov ecx, ebx
push 0x30cf
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 8], 0xd6
lea eax, [ebp + 8]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x404090
mov edx, dword [ebp - 0x18]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x10]
call dword [ebp - 0x14]
lea eax, [ebp + 8]
mov byte [ebp + 8], 1
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x404090
mov edx, dword [ebp - 0x18]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x10]
call dword [ebp - 0x14]
mov eax, dword [ebx]
mov ecx, ebx
push esi
mov eax, dword [eax + 0x27c]
call eax
cmp byte [0x100e805e], 0
je 0x1003ee0c
mov edi, dword [ebp + 0xc]
add edi, 8
mov esi, dword [0x100e84ac]
movzx eax, byte [edi]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [edi + 1]
xor ecx, eax
movzx eax, byte [edi + 2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edi + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul ecx, ecx, 0x1000193
and ecx, dword [0x100e84b8]
mov eax, dword [esi + ecx*8]
add ecx, ecx
lea edx, [ecx*4 + 4]
mov ecx, dword [esi + ecx*4]
mov dword [ebp + 8], edx
mov edx, dword [0x100e84a4]
mov dword [ebp - 0x18], ecx
cmp ecx, edx
jne 0x1003ecca
mov ecx, edx
jmp 0x1003ecd2
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + esi]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x1003ece4
mov ecx, dword [eax + 8]
cmp ecx, dword [edi]
je 0x1003ece6
mov eax, dword [eax]
mov ecx, dword [ebp - 0x18]
jmp 0x1003ecc2
mov eax, edx
cmp eax, edx
jne 0x1003ed15
lea ecx, [ebp - 0x50]
call fcn.100200b0
push eax
push edi
mov ecx, 0x100e84a0
mov byte [ebp - 4], 1
call fcn.10054a50
mov ecx, eax
call fcn.10054b40
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0
call fcn.1001d250
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 8]
call eax
push edi
mov ecx, 0x100e84a0
mov dword [ebp + 8], eax
call fcn.10054a50
push edi
mov ecx, 0x100e84a0
mov esi, dword [eax + 4]
call fcn.10054a50
mov edi, eax
mov eax, dword [ebp + 8]
movzx ecx, al
xor ecx, 0x811c9dc5
imul edx, ecx, 0x1000193
movzx ecx, ah
movzx eax, byte [ebp + 0xb]
xor edx, ecx
movzx ecx, byte [ebp + 0xa]
imul edx, edx, 0x1000193
xor edx, ecx
imul ecx, edx, 0x1000193
mov edx, dword [edi + 0xc]
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [edi + 0x18]
mov edi, dword [edi + 4]
and ecx, eax
mov eax, dword [edx + ecx*8]
add ecx, ecx
mov ebx, dword [edx + ecx*4]
add edx, 4
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp + 0x10]
lea ecx, [edx + ecx*4]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x18], edi
jne 0x1003ed9f
mov ecx, edi
jmp 0x1003eda3
mov ecx, dword [ecx]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x1003edb3
cmp dword [eax + 8], edx
je 0x1003edb5
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
jmp 0x1003ed96
mov eax, edi
cmp eax, esi
mov ecx, ebx
mov eax, dword [ebx]
mov eax, dword [eax + 8]
jne 0x1003ede9
call eax
mov dword [ebp + 8], eax
mov ecx, 0x100e84a0
lea eax, [ebp + 8]
push eax
mov eax, dword [ebp + 0xc]
add eax, 8
push eax
call fcn.10054a50
mov ecx, eax
call fcn.1001ffc0
mov dword [eax], 1
jmp 0x1003ee0c
call eax
mov dword [ebp + 8], eax
mov ecx, 0x100e84a0
lea eax, [ebp + 8]
push eax
mov eax, dword [ebp + 0xc]
add eax, 8
push eax
call fcn.10054a50
mov ecx, eax
call fcn.1001ffc0
inc dword [eax]
mov edx, dword [ebp - 0x1c]
cmp edx, 0x10
jb 0x1003ee3c
mov ecx, dword [ebp - 0x30]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1003ee32
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003ee51
push edx
push ecx
call fcn.1005cbc1
add esp, 8
mov ecx, dword [ebp - 0xc]
xor al, al
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc
call fcn.10078e0c
int3