Function at 0x4acfd4
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor edx, edx
push ebp
push 0x4ad756
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb0]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x4ad03c
inc ebx
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb0]
mov edx, esi
call fcn.00437e90
mov edi, eax
mov edx, dword [ebp - 8]
mov eax, dword [edi + 4]
call dword [edi]
test al, al
je 0x4ad038
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4ad76b
inc esi
dec ebx
jne 0x4ad00d
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004ace48
mov ebx, dword [ebp - 8]
mov ebx, dword [ebx]
mov eax, ebx
cmp eax, 0x53
jg 0x4ad0fe
je 0x4ad613
cmp eax, 0x11
jg 0x4ad0bc
je 0x4ad425
cmp eax, 0x10
ja case.0x4ad071.1
jmp dword [eax*4 + 0x4ad078]
cmp eax, 0x1c
jg 0x4ad0e7
je 0x4ad285
sub eax, 0x14
je 0x4ad239
sub eax, 2
je 0x4ad3ca
sub eax, 4
je 0x4ad697
jmp case.0x4ad071.1
sub eax, 0x1d
je 0x4ad6c0
sub eax, 0x1a
je 0x4ad24e
jmp case.0x4ad071.1
cmp eax, 0xb017
jg 0x4ad154
je 0x4ad477
cmp eax, 0xb000
jg 0x4ad13b
je 0x4ad510
sub eax, 0x112
je 0x4ad19d
add eax, 0xffffffe0
sub eax, 7
jb 0x4ad39e
sub eax, 0x1e1
je 0x4ad6d3
jmp case.0x4ad071.1
sub eax, 0xb001
je 0x4ad58f
sub eax, 0x15
je 0x4ad455
jmp case.0x4ad071.1
cmp eax, 0xb031
jg 0x4ad181
je 0x4ad666
sub eax, 0xb01a
je 0x4ad5cf
sub eax, 5
je 0x4ad613
dec eax
je 0x4ad62d
jmp case.0x4ad071.1
add eax, 0xffff4fc1
sub eax, 2
jb 0x4ad434
sub eax, 0x15
je 0x4ad721
jmp case.0x4ad071.1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
and eax, 0xfff0
sub eax, 0xf020
je 0x4ad1b8
sub eax, 0x100
je 0x4ad1c5
jmp 0x4ad1d2
mov eax, dword [ebp - 4]
call fcn.004ad790
jmp 0x4ad74c
mov eax, dword [ebp - 4]
call fcn.004ad894
jmp 0x4ad74c
push ebp
call fcn.004acf44
pop ecx
jmp 0x4ad74c
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 1
jne 0x4ad74c
mov eax, dword [ebp - 4]
mov byte [eax + 0x34], 1
jmp 0x4ad74c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4ad74c
call fcn.004a913c
jmp 0x4ad74c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x170]
call fcn.004a1b60
test eax, eax
je 0x4ad22d
push ebp
call fcn.004acf84
pop ecx
jmp 0x4ad74c
push ebp
call fcn.004acf44
pop ecx
jmp 0x4ad74c
mov eax, dword [ebp - 8]
mov dword [eax], 0x27
push ebp
call fcn.004acf44
pop ecx
jmp 0x4ad74c
mov eax, dword [ebp - 4]
call fcn.004ad774
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
jmp 0x4ad74c
push 0
push 0
push 0xb01a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x170]
push eax
call sub.user32.dll_GetIconInfo
push ebp
call fcn.004acf44
pop ecx
jmp 0x4ad74c
push ebp
call fcn.004acf44
pop ecx
mov eax, dword [ebp - 8]
mov esi, eax
lea edi, [ebp - 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [ebp - 0x24], 1
sbb eax, eax
inc eax
mov edx, dword [ebp - 4]
mov byte [edx + 0xa5], al
test al, al
je 0x4ad2ed
mov eax, dword [ebp - 4]
cmp byte [eax + 0xd3], 0
je 0x4ad2c8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x34], 0
je 0x4ad2c8
mov eax, dword [ebp - 4]
mov byte [eax + 0x34], 0
mov eax, dword [ebp - 4]
call fcn.004acb18
push 0
push 0
push 0xb000
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x170]
push eax
call sub.user32.dll_GetIconInfo
jmp 0x4ad74c
mov eax, dword [ebp - 4]
call fcn.004acab8
push 0
push 0
push 0xb001
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x170]
push eax
call sub.user32.dll_GetIconInfo
jmp 0x4ad74c
mov eax, dword [ebp - 8]
mov esi, eax
lea edi, [ebp - 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [ebp - 0x34], 0
je 0x4ad35e
cmp byte [0x571fd8], 0
jne 0x4ad352
mov eax, dword [ebp - 4]
call fcn.004acb18
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb4]
test eax, eax
je 0x4ad352
call fcn.004a1df4
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xb4], edx
push ebp
call fcn.004acf44
pop ecx
jmp 0x4ad74c
push ebp
call fcn.004acf44
pop ecx
mov eax, dword [ebp - 4]
cmp dword [eax + 0xb4], 0
jne 0x4ad391
cmp byte [0x571fd8], 0
jne 0x4ad391
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x170]
call fcn.004a1d30
mov edx, dword [ebp - 4]
mov dword [edx + 0xb4], eax
mov eax, dword [ebp - 4]
call fcn.004acac0
jmp 0x4ad74c
mov esi, dword [ebp - 8]
mov esi, dword [esi + 8]
push esi
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 8]
add ebx, 0xbc00
push ebx
mov eax, dword [ebp - 8]
push esi
call sub.user32.dll_GetMenuState
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
jmp 0x4ad74c
mov eax, dword [ebp - 8]
mov esi, eax
lea edi, [ebp - 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4ad407
cmp byte [eax + 0x29a], 1
jne 0x4ad407
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 4]
mov dx, 0x16
mov eax, dword [ebp - 4]
call fcn.004aee70
mov eax, dword [0x57b284]
call fcn.004ae378
cmp dword [ebp - 0x44], 0
je 0x4ad74c
call fcn.004066b8
jmp 0x4ad74c
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], 1
jmp 0x4ad74c
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 8]
mov eax, dword [ebp - 8]
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004afba8
and eax, 0x7f
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
jmp 0x4ad74c
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004add74
test al, al
je 0x4ad74c
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], 1
jmp 0x4ad74c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x4ad74c
mov ebx, eax
mov eax, ebx
call fcn.004876c0
test eax, eax
je 0x4ad74c
mov eax, ebx
call fcn.004876c0
push eax
call sub.user32.dll_EnumThreadWindows
test eax, eax
je 0x4ad74c
mov eax, ebx
call fcn.004876c0
push eax
call sub.user32.dll_FillRect
test eax, eax
je 0x4ad74c
mov byte [0x571fc4], 0
call sub.KERNEL32.DLL_TlsGetValue
mov esi, eax
mov eax, ebx
call fcn.004876c0
push eax
call sub.user32.dll_GetScrollInfo
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 4]
mov edx, 0x112
mov eax, ebx
call fcn.0047fc64
push esi
call sub.user32.dll_GetScrollInfo
mov byte [0x571fc4], 1
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], 1
jmp 0x4ad74c
mov eax, dword [ebp - 4]
cmp word [eax + 0x142], 0
je 0x4ad52f
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x144]
call dword [ebx + 0x140]
mov eax, dword [0x57b284]
mov ebx, dword [eax + 0x44]
test ebx, ebx
je 0x4ad57f
mov eax, dword [0x57b284]
cmp byte [eax + 0xd3], 0
je 0x4ad57f
mov eax, ebx
call fcn.004876c0
push eax
call sub.user32.dll_EnumThreadWindows
test eax, eax
jne 0x4ad57f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.004876c0
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0xd4]
je 0x4ad57f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xd4]
push eax
call sub.user32.dll_GetScrollInfo
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xd4], edx
jmp 0x4ad74c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x170]
push eax
call sub.user32.dll_BeginPaint
mov edx, dword [ebp - 4]
mov dword [edx + 0xd4], eax
mov eax, dword [ebp - 4]
cmp word [eax + 0x13a], 0
je 0x4ad74c
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x13c]
call dword [ebx + 0x138]
jmp 0x4ad74c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x170]
call fcn.004a1b60
test eax, eax
jne 0x4ad74c
call sub.KERNEL32.DLL_TlsGetValue
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x170]
jne 0x4ad74c
xor eax, eax
call fcn.004a1e90
test eax, eax
je 0x4ad74c
push eax
call sub.user32.dll_GetScrollInfo
jmp 0x4ad74c
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 8]
mov edx, dword [ebp - 8]
movzx edx, word [edx + 4]
mov eax, dword [ebp - 4]
call fcn.004ae72c
jmp 0x4ad74c
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 0
jne 0x4ad64e
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push dword [eax + 4]
push dword [eax]
mov eax, dword [ebp - 4]
call fcn.004ae010
jmp 0x4ad74c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push dword [eax + 4]
push dword [eax]
mov eax, dword [ebp - 4]
call fcn.004ae070
jmp 0x4ad74c
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 1
jne 0x4ad683
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb8]
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
jmp 0x4ad74c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0xb8], eax
jmp 0x4ad74c
mov edx, dword [ebp - 8]
mov edx, dword [edx + 4]
mov eax, dword [0x575228]
mov eax, dword [eax]
call fcn.0048d504
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004acec8
push ebp
call fcn.004acf44
pop ecx
jmp 0x4ad74c
mov eax, dword [0x57b288]
call fcn.004abe20
push ebp
call fcn.004acf44
pop ecx
jmp 0x4ad74c
call fcn.00493788
call fcn.004938f0
mov dword [ebp - 0x18], 0xb051
xor eax, eax
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [0x57b288]
call fcn.004aaff4
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x4ad74c
inc ebx
xor esi, esi
mov edx, esi
mov eax, dword [0x57b288]
call fcn.004aafe0
lea edx, [ebp - 0x18]
call fcn.00483218
inc esi
dec ebx
jne 0x4ad707
jmp 0x4ad74c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 4]
mov dx, 0xb056
mov eax, dword [ebp - 4]
call fcn.004aee70
jmp 0x4ad74c
xor eax, eax
call fcn.00442d70
jmp 0x4ad74c
push ebp
call fcn.004acf44
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4ad76b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret