Function at 0x410560
Capabilities:
Get thread local storage value
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ac523
mov eax, dword fs:[0]
push eax
sub esp, 0xb4
mov eax, dword [0x4d5104]
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 edi, ecx
mov dword [ebp - 0x2c], edi
mov dword [ebp - 4], 1
cmp dword [ebp + 8], 0
jne 0x4105d8
mov byte [ebp - 4], 2
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x4105cc
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x4105cc
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x4105cc
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov dword [ebp - 4], 3
jmp 0x410695
mov eax, dword [edi + 0x24]
push dword [0x518c04]
mov esi, dword [eax + 0x10]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x4105ff
nop
cmp dword [eax], esi
je 0x4106cb
mov eax, dword [eax + 8]
test eax, eax
jne 0x4105f0
lea eax, [ebp + 0x10]
mov dword [ebp - 0x20], edi
push eax
lea eax, [ebp + 8]
mov dword [ebp - 0x1c], fcn.00410560
push eax
lea eax, [ebp - 0x20]
push eax
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0xc0]
call fcn.00414810
add esp, 0xc
lea ecx, [edi + 0x28]
mov byte [ebp - 4], 4
mov dword [ebp - 0x80], ecx
lea ecx, [ebp - 0x78]
push eax
call fcn.004157a0
mov byte [ebp - 4], 5
lea edx, [ebp - 0x80]
mov ecx, dword [edi + 0x24]
add ecx, 0xc
push ecx
call fcn.00410880
add esp, 4
lea ecx, [ebp - 0x70]
call fcn.004113d0
lea ecx, [ebp - 0xb8]
call fcn.004113d0
mov byte [ebp - 4], 6
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x41068e
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x41068e
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x41068e
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov dword [ebp - 4], 7
mov ecx, dword [ebp + 0x34]
test ecx, ecx
je 0x4106ad
mov edx, dword [ecx]
lea eax, [ebp + 0x10]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
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.004a8e74
mov esp, ebp
pop ebp
ret 0x30
cmp dword [eax + 4], 0
je 0x4105ff
lea eax, [edi + 0x20]
mov byte [ebp - 0x14], 0
push eax
mov dword [ebp - 0x20], eax
call fcn.004812d0
mov ebx, dword [ebp + 8]
add esp, 4
cmp byte [ebx + 0x1e1], 0
je 0x41081b
movzx eax, bl
xor eax, 0x811c9dc5
mov edx, dword [edi + 4]
imul ecx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
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 eax, ecx, 0x1000193
mov ecx, dword [edi + 0x18]
and ecx, eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x28], eax
mov eax, dword [eax + ecx*8]
lea ecx, [ecx*8 + 4]
mov dword [ebp - 0x18], ecx
mov esi, eax
lea ecx, [edi + 4]
mov dword [ebp - 0x24], eax
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x28]
nop
cmp eax, edx
jne 0x410768
mov eax, edx
jmp 0x41076d
mov eax, dword [edi + ecx]
mov eax, dword [eax]
cmp esi, eax
je 0x4107b5
cmp dword [esi + 8], ebx
je 0x41077d
mov esi, dword [esi]
mov eax, dword [ebp - 0x24]
jmp 0x410760
mov ecx, esi
mov edi, esi
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x34], edi
mov edi, dword [ebp - 0x24]
nop dword [eax]
cmp edi, edx
jne 0x410798
mov eax, edx
jmp 0x4107a0
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + ecx]
mov eax, dword [eax]
cmp esi, eax
je 0x4107ad
cmp ebx, dword [esi + 8]
jne 0x4107ad
mov esi, dword [esi]
jmp 0x410790
mov edi, dword [ebp - 0x34]
cmp dword [ebp - 0x30], esi
jne 0x4107b9
mov edi, edx
mov esi, edx
mov eax, edi
xor ebx, ebx
mov dword [ebp - 0x18], ebx
cmp eax, esi
je 0x4107ce
mov eax, dword [eax]
inc ebx
cmp eax, esi
jne 0x4107c4
mov dword [ebp - 0x18], ebx
cmp edi, dword [edx]
jne 0x4107f2
cmp esi, edx
jne 0x4107f2
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x1c]
call fcn.00408660
mov ecx, dword [ebp - 0x2c]
push 8
call fcn.004075e0
mov byte [ebp - 4], 1
jmp 0x410815
cmp edi, esi
je 0x410815
mov ebx, dword [ebp - 0x2c]
nop dword [eax]
push edi
mov edi, dword [edi]
lea eax, [ebp - 0x1c]
push eax
mov ecx, ebx
call fcn.004103b0
cmp edi, esi
jne 0x410800
mov ebx, dword [ebp - 0x18]
test ebx, ebx
setne byte [ebp - 0x14]
push dword [ebp - 0x20]
call fcn.004812f0
mov al, byte [ebp - 0x14]
add esp, 4
mov ecx, dword [ebp + 0x34]
mov byte [ebp - 0x14], al
test ecx, ecx
je 0x410874
mov eax, dword [ecx]
lea edx, [ebp - 0x14]
push edx
call dword [eax + 8]
mov byte [ebp - 4], 9
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x410868
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edi + 4], eax
jne 0x410868
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lock xadd dword [edi + 8], esi
dec esi
jne 0x410868
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov dword [ebp - 4], 0xa
jmp 0x410695
call fcn.0047f250
int3