Function at 0x10048b10
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
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 0x10048b37
lea eax, [esi + 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x716e]
cmp edx, 0xffffffff
jne 0x10048b5a
cmp word [esi + 0x7176], 0
je 0x10048b5a
mov ecx, dword [esi + 0x717a]
mov edi, dword [esi + 0x717e]
jmp 0x10048b5e
mov ecx, edx
xor edi, edi
mov dword [esi + 0x7130], ecx
mov dword [esi + 0x7134], edi
mov ecx, dword [esi + 0x716a]
cmp ecx, 0xffffffff
jne 0x10048b9f
cmp word [esi + 0x7176], 0
je 0x10048b9f
cmp edx, ecx
je 0x10048b91
mov ecx, dword [esi + 0x717a]
mov edx, dword [esi + 0x717e]
jmp 0x10048ba1
mov ecx, dword [esi + 0x7182]
mov edx, dword [esi + 0x7186]
jmp 0x10048ba1
xor edx, edx
mov dword [eax + 0x7128], ecx
mov dword [eax + 0x712c], edx
cmp dword [esi + 0x34], 0
jne 0x10048ddb
test byte [esi + 0x715e], 8
je 0x10048c6c
mov eax, dword [esi + 0x8238]
mov dword [esi + 0x7166], eax
mov eax, dword [esi + 0x8240]
cmp eax, 0xffffffff
jne 0x10048bf3
cmp word [esi + 0x8256], 0
je 0x10048bf3
mov ecx, dword [esi + 0x825a]
mov edx, dword [esi + 0x825e]
jmp 0x10048bfd
mov dword [esi + 0x716e], eax
mov ecx, eax
xor edx, edx
mov dword [esi + 0x7130], ecx
mov dword [esi + 0x7134], edx
mov ecx, dword [esi + 0x823c]
cmp ecx, 0xffffffff
jne 0x10048c56
cmp word [esi + 0x8256], 0
je 0x10048c56
cmp eax, ecx
je 0x10048c3c
mov eax, dword [esi + 0x825a]
mov ecx, dword [esi + 0x825e]
mov dword [esi + 0x7128], eax
mov dword [esi + 0x712c], ecx
jmp 0x10048c6c
mov eax, dword [esi + 0x8262]
mov ecx, dword [esi + 0x8266]
mov dword [esi + 0x7128], eax
mov dword [esi + 0x712c], ecx
jmp 0x10048c6c
mov dword [esi + 0x716a], ecx
mov dword [esi + 0x7128], ecx
mov dword [esi + 0x712c], 0
test byte [esi + 0x824e], 0x10
je 0x10048d80
cmp dword [esi + 0x6108], 0
jne 0x10048d5e
mov ecx, ebx
call fcn.1004d9a0
test eax, eax
je 0x10048d67
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
mov dword [ebp - 4], eax
lea ecx, [eax*2 + 0x18]
push ecx
push 1
call fcn.10089fce
mov edi, eax
add esp, 8
test edi, edi
je 0x10048d4e
lea ecx, [edi + 0x18]
mov dword [edi + 4], ecx
cmp word [esi + 0x1fc10], 0xa
jne 0x10048cec
mov eax, dword [esi + 0x1fc2c]
mov ecx, dword [esi + 0x1fc30]
mov dword [edi + 8], eax
mov dword [edi + 0xc], ecx
mov ecx, dword [esi + 0x1fc1c]
mov eax, dword [esi + 0x1fc20]
jmp 0x10048d1a
lea eax, [ebp - 0xc]
push eax
movzx eax, word [esi + 0x8234]
push eax
movzx eax, word [esi + 0x8236]
push eax
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
lea eax, [edi + 8]
push eax
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], eax
push ebx
push dword [ebp - 4]
push dword [edi + 4]
call fcn.10086dbb
add esp, 0xc
cmp dword [esi + 0x1fc4c], 0
jne 0x10048d40
mov dword [esi + 0x1fc4c], edi
jmp 0x10048d48
mov eax, dword [esi + 0x1fc50]
mov dword [eax], edi
mov dword [esi + 0x1fc50], edi
mov edx, dword [esi + 0x824e]
mov ecx, ebx
and edx, 0x37
call fcn.1004dc10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 0xb7
neg eax
sbb eax, eax
and eax, 0x1c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.1004cc70
movzx eax, word [esi + 0x7174]
cdq
mov edi, eax
mov ecx, edx
movzx eax, word [esi + 0x7172]
cdq
add edi, eax
lea eax, [ebp - 4]
push 1
adc ecx, edx
add edi, 0x1e
push eax
push edi
push dword [esi + 0x18380]
adc ecx, 0
mov dword [ebp - 4], ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x10048dc6
call dword [sym.imp.KERNEL32.dll_GetLastError]
test byte [esi + 0x824e], 8
je 0x10048e03
mov eax, 0x2e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x7130], 0xffffffff
mov dword [esi + 0x7134], 0x7fffffff
mov dword [eax + 0x7128], 0xffffffff
mov dword [eax + 0x712c], 0x7fffffff
cmp dword [esi + 0x82b0], 0
mov dword [esi + 0x18370], 0
mov dword [esi + 0x1f55c], 0
je 0x10048e77
mov eax, 0x9901
mov dword [esi + 0x1f9b8], 0
cmp word [esi + 0x8276], ax
jne 0x10048e4b
mov ecx, esi
mov dword [esi + 0x1f55c], 2
call fcn.10048410
jmp 0x10048e6f
cmp word [esi + 0x7196], ax
je 0x10048e38
cmp word [esi + 0x8281], 0x17
jne 0x10048eaa
mov ecx, esi
mov dword [esi + 0x1f55c], 8
call fcn.10048600
test eax, eax
jne 0x10048f6b
cmp dword [esi + 0x6108], 0
jne 0x10048ef8
cmp dword [esi + 0x2c], 0
jne 0x10048ef8
cmp dword [esi + 0x34], 0
jne 0x10048ef8
push dword [esi + 0x7134]
mov ecx, ebx
push dword [esi + 0x7130]
call fcn.1004f690
mov edi, eax
add esp, 8
test edi, edi
jne 0x10048f12
jmp 0x10048f02
mov dword [esi + 0x82b0], 0
xor edi, edi
mov edx, esi
lea ecx, [ebp - 4]
call fcn.1004f8d0
mov al, byte [ebp - 4]
mov byte [ebp + edi - 0x10], al
inc edi
cmp edi, 0xc
jl 0x10048eb6
cmp byte [esi + 0x82b4], 0
mov dword [esi + 0x82b0], 1
je 0x10048eec
lea ecx, [ebp - 0x10]
call fcn.10048170
test eax, eax
je 0x10048e77
mov eax, 0x2c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x1b40c], 0xffffffff
call fcn.10051040
mov edi, eax
test edi, edi
jne 0x10048f12
cmp dword [esi + 4], eax
je 0x10048f69
push dword [esi + 0x18380]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0x1b40c]
mov dword [esi + 0x18380], 0xffffffff
cmp eax, 0xffffffff
je 0x10048f44
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x1b40c], 0xffffffff
cmp dword [esi + 0x6108], 0
jne 0x10048f69
cmp dword [esi + 0x2c], 0
jne 0x10048f69
cmp dword [esi + 0x34], 0
jne 0x10048f69
cmp dword [esi + 0x610c], 0
jne 0x10048f69
mov ecx, ebx
call fcn.1004dae0
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret