Function at 0x45b330
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x47c
mov al, byte [ebp + 0xc]
push ebx
push esi
mov esi, ecx
xor ebx, ebx
mov dword [esp + 8], ebx
push edi
mov dword [esp + 0x10], esi
mov byte [esi + 0x21c], al
cmp dword [esi + 0x34], ebx
je 0x45b46c
push 0x20
call fcn.004ce9a6
add esp, 4
test eax, eax
je 0x45b383
mov dword [eax + 4], ebx
mov dword [eax], 0x540498
mov dword [eax + 0x1c], 0xf
mov dword [eax + 0x18], ebx
mov byte [eax + 8], bl
jmp 0x45b385
xor eax, eax
mov dword [esp + 0x1c], eax
test eax, eax
je 0x45b399
mov ecx, 1
add eax, 4
lock xadd dword [eax], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
test ecx, ecx
je 0x45b3b9
mov eax, dword [eax + 4]
lea edx, [esp + 0x17]
push edx
lea edx, [esp + 0x20]
mov byte [esp + 0x1b], bl
push edx
push ecx
call eax
add esp, 0xc
cmp dword [0x552334], 1
jg 0x45b41b
mov ebx, 1
lea ecx, [esp + 0x70]
push ebx
push 2
mov dword [esp + 0x70], ebx
call fcn.00407d20
mov dword [esp + 0x10c], str.d:work_codeliebaocodesliebao_46_src_import_base_trace_event_trace_log.cc
mov dword [esp + 0x110], 0x39b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x39b
push str.d:work_codeliebaocodesliebao_46_src_import_base_trace_event_trace_log.cc
lea ecx, [esp + 0x70]
mov dword [esp + 0x11c], eax
call fcn.0041fd30
mov edx, str.Ignored_TraceLog::Flush_called_when_tracing_is_enabled
lea ecx, [esp + 0x70]
call fcn.00406e90
test bl, 1
je 0x45b429
lea ecx, [esp + 0x68]
call fcn.0041faf0
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x45b8c7
lea ecx, [eax + 4]
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
setne al
test al, al
jne 0x45b8c7
test ecx, ecx
je 0x45b8c7
add ecx, 0xfffffffc
je 0x45b8c7
mov eax, dword [ecx]
push 1
call dword [eax + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esi + 0x218]
lea edi, [esi + 4]
push edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x10], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call fcn.00450120
push dword [eax]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x45b4ce
mov ebx, 4
call fcn.00450120
push dword [eax]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
test eax, eax
je 0x45b4c8
mov ecx, 1
add eax, ebx
lock xadd dword [eax], ecx
lea eax, [esp + 0x20]
jmp 0x45b4df
mov ebx, 8
mov dword [esp + 0x18], 0
lea eax, [esp + 0x18]
mov ecx, dword [eax]
or edx, 0xffffffff
mov dword [eax], 0
mov eax, dword [esi + 0x20c]
mov dword [esi + 0x20c], ecx
test eax, eax
je 0x45b51e
lea ecx, [eax + 4]
mov eax, edx
lock xadd dword [ecx], eax
dec eax
setne al
test al, al
jne 0x45b51e
test ecx, ecx
je 0x45b514
add ecx, 0xfffffffc
jmp 0x45b516
xor ecx, ecx
mov eax, dword [ecx]
call dword [eax + 0xc]
or edx, 0xffffffff
test bl, 8
je 0x45b54f
mov eax, dword [esp + 0x18]
and ebx, 0xfffffff7
test eax, eax
je 0x45b54f
lea ecx, [eax + 4]
mov eax, edx
lock xadd dword [ecx], eax
dec eax
setne al
test al, al
jne 0x45b54f
test ecx, ecx
je 0x45b548
add ecx, 0xfffffffc
jmp 0x45b54a
xor ecx, ecx
mov eax, dword [ecx]
call dword [eax + 0xc]
test bl, 4
je 0x45b581
mov eax, dword [esp + 0x20]
and ebx, 0xfffffffb
test eax, eax
je 0x45b581
lea ecx, [eax + 4]
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
setne al
test al, al
jne 0x45b581
test ecx, ecx
je 0x45b57a
add ecx, 0xfffffffc
jmp 0x45b57c
xor ecx, ecx
mov eax, dword [ecx]
call dword [eax + 0xc]
test bl, 0x10
je 0x45b595
lea ecx, [esp + 0x1c8]
and ebx, 0xffffffef
call fcn.0041faf0
mov edx, dword [ebp + 8]
mov edx, dword [edx]
test edx, edx
je 0x45b5a7
mov eax, 1
lock xadd dword [edx], eax
mov ecx, dword [esi + 0x204]
mov dword [esi + 0x204], edx
test ecx, ecx
je 0x45b5cf
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
setne al
test al, al
jne 0x45b5cf
mov eax, dword [ecx + 4]
push ecx
call eax
add esp, 4
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esi + 0x208], eax
cmp dword [esi + 0x1fc], 0
je 0x45b607
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x1fc]
push ecx
mov edx, esp
mov dword [esi + 0x1fc], 0
mov dword [edx], eax
mov eax, dword [ecx]
push dword [esi + 0x200]
call dword [eax + 8]
cmp dword [esi + 0x1e0], 0
je 0x45b644
mov eax, dword [esi + 0x1dc]
mov esi, dword [eax]
cmp esi, eax
je 0x45b640
mov edi, dword [esp + 0x10]
mov eax, dword [esi + 8]
lea ecx, [esp + 0x2c]
add eax, 0xbc
push eax
call fcn.0045f0d0
mov esi, dword [esi]
cmp esi, dword [edi + 0x1dc]
jne 0x45b620
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [esp + 0x30]
mov eax, edi
sub eax, dword [esp + 0x2c]
sar eax, 2
mov dword [esp + 0xc], eax
test eax, eax
je 0x45b8d0
xor edi, edi
test eax, eax
je 0x45b74d
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
push 0x1c
call fcn.004ce9a6
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x45b6ad
mov eax, dword [esp + 0x1c]
mov dword [ecx], 0
mov dword [ecx + 4], 0x466c70
mov dword [ecx + 8], 0x45be70
mov dword [ecx + 0x10], esi
mov dword [ecx + 0x14], eax
mov eax, dword [ebp + 0x10]
mov byte [ecx + 0x18], al
jmp 0x45b6af
xor ecx, ecx
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x45b6c0
mov eax, 1
lock xadd dword [ecx], eax
mov dword [esp + 0x3c], 0
test bl, 0x40
je 0x45b6dc
lea ecx, [esp + 0x328]
and ebx, 0xffffffbf
call fcn.0041faf0
mov dword [esp + 0x3c], 0x469080
mov dword [esp + 0x48], str.base::trace_event::TraceLog::FlushInternal
mov dword [esp + 0x4c], str.d:work_codeliebaocodesliebao_46_src_import_base_trace_event_trace_log.cc
mov dword [esp + 0x50], 0x3bd
call fcn.0040d7a0
push dword [esp + 0x24]
mov dword [esp + 0x58], eax
lea edx, [esp + 0x3c]
mov eax, dword [esp + 0x30]
push dword [esp + 0x24]
push edx
mov ecx, dword [eax + edi*4]
lea edx, [esp + 0x54]
push edx
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x45b742
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
setne al
test al, al
jne 0x45b742
mov eax, dword [ecx + 4]
push ecx
call eax
add esp, 4
inc edi
cmp edi, dword [esp + 0xc]
jb 0x45b677
mov eax, dword [esi + 0x20c]
lea ecx, [esp + 0xc]
push 0
push 0x3e8
push 0
push 0xbb8
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], 0
call fcn.00448460
mov edi, dword [esp + 0x1c]
add esp, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edx
test ebx, 0x200
je 0x45b79f
lea ecx, [esp + 0x118]
and ebx, 0xfffffdff
call fcn.0041faf0
test ebx, 0x400
je 0x45b7b9
lea ecx, [esp + 0x278]
and ebx, 0xfffffbff
call fcn.0041faf0
test edi, edi
je 0x45b7de
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x10], SysReAllocString
cmp edi, 1
jne 0x45b7de
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], SysReAllocString
push 0x1c
call fcn.004ce9a6
add esp, 4
test eax, eax
je 0x45b812
mov ecx, dword [esp + 0x1c]
mov dword [eax], 0
mov dword [eax + 4], 0x466c70
mov dword [eax + 8], 0x45bf60
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], ecx
mov ecx, dword [ebp + 0x10]
mov byte [eax + 0x18], cl
jmp 0x45b814
xor eax, eax
mov dword [esp + 0x40], eax
test eax, eax
je 0x45b825
mov ecx, 1
lock xadd dword [eax], ecx
mov dword [esp + 0x44], 0
test ebx, 0x800
je 0x45b841
lea ecx, [esp + 0x3d8]
call fcn.0041faf0
mov dword [esp + 0x44], 0x469080
mov dword [esp + 0x58], str.base::trace_event::TraceLog::FlushInternal
mov dword [esp + 0x5c], str.d:work_codeliebaocodesliebao_46_src_import_base_trace_event_trace_log.cc
mov dword [esp + 0x60], 0x3c1
call fcn.0040d7a0
push dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x44]
push dword [esp + 0x1c]
mov dword [esp + 0x6c], eax
push edx
mov eax, dword [ecx]
lea edx, [esp + 0x64]
push edx
call dword [eax]
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x45b8a4
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
setne al
test al, al
jne 0x45b8a4
mov eax, dword [ecx + 4]
push ecx
call eax
add esp, 4
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x45b8c7
push dword [esp + 0xc]
mov edx, edi
push ecx
mov ecx, ebx
call fcn.00467e20
push ebx
call fcn.004cdb8c
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push dword [ebp + 0x10]
mov ecx, esi
push dword [esp + 0x20]
call fcn.0045bb10
jmp 0x45b8a8