Function at 0x10047e20
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
push dword [0x100c7608]
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
test esi, esi
jne 0x10047e47
lea eax, [esi + 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebx + 0x88]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 4], eax
test edi, edi
jne 0x10047e61
lea eax, [edi + 0x2f]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esi + 0x90]
call fcn.1004b630
test eax, eax
jne 0x1004815a
mov eax, dword [esi + 0x18368]
test eax, eax
je 0x10047e91
push eax
call fcn.10086818
add esp, 4
mov dword [esi + 0x18368], 0
mov eax, dword [esi + 0x1a3f8]
test eax, eax
je 0x10047eae
push eax
call fcn.10086818
add esp, 4
mov dword [esi + 0x1a3f8], 0
xor ecx, ecx
call fcn.1004b840
mov dword [esi + 0x60f4], eax
test eax, eax
je 0x10047ef2
mov eax, dword [ebx + 0x14]
mov edx, 2
shr eax, 1
and eax, 1
push eax
lea ecx, [edx + 0x70]
call fcn.1004f5b0
mov ecx, dword [esi + 0x60f4]
mov edx, eax
call fcn.10044c90
mov eax, dword [esi + 0x60f4]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x8224], 0
jne 0x10047f18
mov dword [esi + 0x60e8], 0
mov dword [esi + 0x60ec], 0
call fcn.10046ec0
mov ecx, eax
jmp 0x10047f1a
xor ecx, ecx
mov dword [esi + 0x60f4], ecx
mov edx, dword [ebp - 4]
test edx, edx
js 0x10048130
mov eax, dword [esi + 0x81f2]
dec eax
cmp edx, eax
jg 0x10048130
test ecx, ecx
jne 0x10047ebf
mov eax, edx
cdq
mov dword [esi + 0x60e8], eax
mov dword [esi + 0x60ec], edx
call fcn.10046ec0
mov dword [esi + 0x60f4], eax
test eax, eax
je 0x10047f98
mov eax, dword [ebx + 0x14]
mov edx, 2
shr eax, 1
and eax, 1
push eax
lea ecx, [edx + 0x70]
call fcn.1004f5b0
mov ecx, dword [esi + 0x60f4]
mov edx, eax
call fcn.10044c90
add esp, 4
xor eax, eax
mov word [esi + 0x18384], ax
mov eax, dword [esi + 0x60f4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x800
lea ebx, [esi + 0x1a404]
push ebx
lea eax, [edi + 0x42]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
mov eax, dword [esi + 0x8240]
cmp eax, 0xffffffff
je 0x10047fbd
xor ecx, ecx
jmp 0x10047fc9
mov eax, dword [esi + 0x825a]
mov ecx, dword [esi + 0x825e]
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
mov ecx, dword [esi + 0x823c]
cmp ecx, 0xffffffff
je 0x10047fde
xor eax, eax
jmp 0x10048001
cmp dword [esi + 0x8240], 0xffffffff
je 0x10047ff5
mov ecx, dword [esi + 0x825a]
mov eax, dword [esi + 0x825e]
jmp 0x10048001
mov ecx, dword [esi + 0x8262]
mov eax, dword [esi + 0x8266]
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], eax
test ebx, ebx
je 0x1004802f
movzx eax, word [ebx]
test ax, ax
je 0x1004802f
mov ecx, eax
cmp cx, 0x5c
je 0x10048083
cmp cx, 0x2f
je 0x10048083
movzx eax, word [ebx + 2]
add ebx, 2
mov ecx, eax
test ax, ax
jne 0x10048015
lea eax, [edi + 0x20]
xor ecx, ecx
mov word [eax], cx
movzx eax, word [esi + 0x8232]
mov word [edi + 0x1c], ax
movzx eax, word [esi + 0x8230]
mov word [edi + 0x1e], ax
mov eax, dword [esi + 0x8238]
mov dword [edi + 0x18], eax
mov eax, dword [ebp - 4]
mov dword [edi], eax
mov eax, dword [esi + 0x824e]
and eax, 0x7fff
mov dword [edi + 0x14], eax
test byte [esi + 0x8230], 1
je 0x10048091
or eax, 0x8000
mov ecx, esi
mov dword [edi + 0x14], eax
call fcn.100479a0
jmp 0x10048093
lea eax, [edi + 0x20]
test ebx, ebx
je 0x10048032
mov ecx, 1
jmp 0x10048034
xor eax, eax
mov dword [edi + 0x3e], eax
lea ebx, [edi + 0x22]
movzx ecx, word [esi + 0x822e]
movzx eax, word [esi + 0x822c]
shl ecx, 0x10
add ecx, eax
mov dword [edi + 0x3a], ecx
cmp word [esi + 0x1fc10], 0xa
jne 0x100480ea
mov eax, dword [esi + 0x1fc2c]
mov ecx, dword [esi + 0x1fc30]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov eax, dword [esi + 0x1fc1c]
mov ecx, dword [esi + 0x1fc20]
mov dword [edi + 0x2a], eax
mov dword [edi + 0x2e], ecx
mov eax, dword [esi + 0x1fc24]
mov ecx, dword [esi + 0x1fc28]
jmp 0x1004811a
lea eax, [ebp - 8]
push eax
movzx eax, word [esi + 0x8234]
push eax
movzx eax, word [esi + 0x8236]
push eax
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
push ebx
lea eax, [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [edi + 0x2a], eax
mov dword [edi + 0x2e], ecx
mov dword [edi + 0x32], eax
xor eax, eax
mov dword [edi + 0x36], ecx
mov word [esi + 0x18384], ax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x14]
mov edx, 2
shr eax, 1
and eax, 1
push eax
lea ecx, [edx + 0x71]
call fcn.1004f5b0
mov edx, eax
mov ecx, 0x19
call fcn.10044c90
mov eax, 0x19
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret