Function at 0x10034990
Capabilities:
Get thread local storage value

Disassembly:
push ecx
mov eax, dword [0x10063c04]
push ebx
push ebp
push esi
push edi
push eax
xor ebx, ebx
xor ebp, ebp
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
cmp esi, ebx
jne 0x100349b6
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
pop ecx
ret
mov ecx, dword [esi + 0x9c]
mov edi, dword [esi + 0x15fac]
mov edx, ecx
mov eax, 0xaaaaaaaa
shr ecx, 2
mov dword [esi + 0x14f58], ebx
mov dword [esi + 0x14f54], ebx
mov dword [esi + 0x167b8], ebx
mov dword [esi + 0x167bc], ebx
mov dword [esi + 0x15fb0], edi
mov byte [esi + 0x14f5c], bl
mov dword [esi + 0x14f34], 0xffffffff
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
cmp dword [esi + 0x4c], ebx
jne 0x10034a5a
cmp dword [esi + 0x48], ebx
jne 0x10034a5a
cmp dword [esi + 0x24], ebx
je 0x10034a5a
lea eax, [esi + 0x3d44]
lea ecx, [esi + 0x1dc]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov edx, dword [esi + 0x2c]
lea ecx, [esi + 0x33c]
push ecx
lea eax, [esi + 0x1d8]
push ebx
push 0x4a
push edx
mov dword [eax], ebx
mov dword [ecx], 1
mov dword [esi + 0x340], 0x164
mov dword [esi + 0x344], eax
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x10034a75
mov eax, dword [esi + 0x4600]
cmp eax, ebx
je 0x10034a75
mov ecx, dword [esi + 0x4604]
lea edx, [esi + 0x3d44]
push ecx
push ebx
push edx
call eax
xor eax, eax
mov dword [esi + 0x3d38], ebx
mov ax, word [esi + 0x45c8]
mov dword [esi + 0x60], ebx
cmp eax, 9
mov dword [esi + 0x3d3c], ebx
mov dword [esi + 0x64], ebx
ja case.0x10034a99.7
jmp dword [eax*4 + 0x10034cb8]
lea eax, [esp + 0x12]
push esi
push eax
call fcn.10033820
add esp, 8
test eax, eax
je 0x10034b3b
cmp dword [esi + 0x167c4], ebx
jne 0x10034b3b
cmp dword [esi], ebx
jne 0x10034b3b
mov ecx, dword [esi + 0x15fb0]
mov dl, byte [esp + 0x12]
mov byte [ecx], dl
mov edi, dword [esi + 0x15fb0]
mov edx, dword [esi + 0x167bc]
mov ecx, dword [esi + 0x9c]
inc edi
inc edx
mov eax, edx
mov dword [esi + 0x15fb0], edi
cmp eax, ecx
mov dword [esi + 0x167bc], edx
jne 0x10034afd
push esi
call fcn.10033cf0
add esp, 4
lea eax, [esp + 0x12]
push esi
push eax
call fcn.10033820
add esp, 8
test eax, eax
jne 0x10034ab6
jmp 0x10034b3b
call fcn.10038200
jmp 0x10034b3b
call fcn.10037c90
jmp 0x10034b3b
call fcn.100378a0
cmp eax, ebx
je 0x10034b3b
cmp eax, 5
je 0x10034b3b
sub eax, 3
neg eax
sbb eax, eax
and al, 0xfd
add eax, 5
mov ebp, eax
cmp dword [esi + 0x20], ebx
je 0x10034b79
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
pop ecx
ret
call fcn.10036040
cmp eax, ebx
je 0x10034b3b
cmp dword [esi + 0x4c], ebx
je 0x10034b2d
cmp eax, 1
jne 0x10034b2d
xor ebp, ebp
jmp 0x10034b3b
call fcn.10032940
cmp eax, ebx
je 0x10034b3b
cmp dword [esi + 0x4c], ebx
je 0x10034b2d
cmp eax, 1
jne 0x10034b2d
xor ebp, ebp
jmp 0x10034b3b
cmp dword [esi], ebx
je 0x10034ba5
cmp dword [esi + 0x4c], ebx
jne 0x10034b87
cmp dword [esi + 0x44], ebx
je 0x10034b9a
cmp dword [esi + 0x167c4], 2
jne 0x10034b9a
mov dword [esi], ebx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret
pop edi
pop esi
pop ebp
mov eax, 0x30
pop ebx
pop ecx
ret
mov eax, dword [esi + 0x167c4]
cmp eax, ebx
je 0x10034bd2
cmp dword [esi + 0x4c], ebx
jne 0x10034bff
cmp dword [esi + 0x44], ebx
jne 0x10034bff
cmp eax, 1
jle 0x10034bc9
pop edi
pop esi
pop ebp
mov eax, 0x32
pop ebx
pop ecx
ret
cmp eax, ebx
mov ebp, 1
jne 0x10034c28
push esi
call fcn.10033cf0
add esp, 4
test eax, eax
je 0x10034c28
mov eax, dword [esi + 0x167c4]
cmp eax, 1
jle 0x10034c23
cmp dword [esi + 0x4c], ebx
jne 0x10034c13
cmp dword [esi + 0x44], ebx
jne 0x10034c13
pop edi
pop esi
pop ebp
mov eax, 0x32
pop ebx
pop ecx
ret
xor ecx, ecx
cmp eax, 3
setne cl
dec ecx
pop edi
and ecx, 2
pop esi
pop ebp
mov eax, ecx
pop ebx
pop ecx
ret
cmp eax, 2
je 0x10034c28
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
pop ecx
ret
mov ebp, 1
cmp dword [esi + 0x3d28], ebx
jne 0x10034c3f
cmp dword [esi + 0x44], ebx
jne 0x10034c3f
cmp dword [esi + 0x4c], ebx
jne 0x10034c3f
call fcn.10034730
cmp ebp, 1
jle 0x10034c4c
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
pop ecx
ret
cmp dword [esi + 0x44], ebx
je 0x10034c81
mov edx, dword [esi + 0x70]
mov eax, dword [esi + 0x74]
or edx, eax
jne 0x10034ca3
mov ecx, dword [esi + 0x45d6]
mov edx, dword [esi + 0x88]
mov edi, dword [esi + 0x8c]
xor eax, eax
add ecx, edx
mov edx, dword [esi + 0x6c]
adc eax, edi
cmp eax, edx
jg 0x10034ca3
jl 0x10034c81
cmp ecx, dword [esi + 0x68]
ja 0x10034ca3
cmp dword [esi + 0x4c], ebx
jne 0x10034ca3
mov eax, dword [esi + 0x14f34]
mov ecx, dword [esi + 0x45ce]
not eax
cmp eax, ecx
mov dword [esi + 0x14f34], eax
je 0x10034ca3
mov ebp, 0x27
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
pop ecx
ret
pop edi
pop esi
pop ebp
mov eax, 0x2a
pop ebx
pop ecx
ret