Function at 0x4ecdf0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x68
mov esi, ecx
mov eax, dword [0x597010]
xor eax, ebp
mov dword [esp + 0x60], eax
mov eax, dword [0x5aae98]
mov ecx, dword [0x59b038]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4ed236
mov edi, dword [esi + 0x1c]
mov eax, dword [0x599b44]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
sub esp, 4
and eax, 0xfffffffc
je 0x4ecf94
mov ecx, dword [0x5aae90]
mov dword [eax + ecx*8], edi
mov ecx, dword [0x5aae94]
mov edx, dword [0x5aae90]
mov dword [eax + edx*8 + 4], ecx
cmp byte [esi + 0x18], 0
je 0x4ecee1
mov ecx, dword [0x599b40]
call dword [section..00cfg]
lea edi, [esp + 0x48]
mov dword [esp], edi
call ecx
movsd xmm0, qword [esp + 0x48]
movsd qword [esi + 0x10], xmm0
cmp byte [esi], 0
je 0x4ece9e
cmp dword [esi + 0x20], 0
je 0x4ece9e
test byte [0x599068], 0x19
jne 0x4ed073
mov eax, dword [esi + 8]
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x20], eax
sub ecx, eax
sbb edi, ebx
seto dl
mov eax, edi
sar eax, 0x1f
test dl, dl
cmovne ecx, eax
add eax, 0x80000000
test dl, dl
cmove eax, edi
cmp ecx, 0xfa0
sbb eax, 0
jl 0x4ecee1
test byte [0x599068], 0x19
jne 0x4ecfa6
mov eax, dword [esi + 0x34]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x59f9d0]
bt edx, ecx
jae 0x4ecf02
mov dword [esp], eax
call fcn.0042f1aa
mov dword [esi + 0x34], 0
mov eax, dword [esi + 0x30]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x59f9d0]
bt edx, ecx
jae 0x4ecf2a
mov dword [esp], eax
call fcn.0042f1aa
mov dword [esi + 0x30], 0
mov eax, dword [esi + 0x1c]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x59f9d0]
bt edx, ecx
jae 0x4ecf52
mov dword [esp], eax
call fcn.0042f1aa
mov dword [esi + 0x1c], 0
mov eax, dword [esi + 4]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x59f9d0]
bt edx, ecx
jae 0x4ecf7a
mov dword [esp], eax
call fcn.0042f1aa
mov dword [esi + 4], 0
mov ecx, dword [esp + 0x60]
xor ecx, ebp
call fcn.00528e13
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test edi, edi
je 0x4ece60
call fcn.004625e0
jmp 0x4ece47
mov dword [esp + 0x40], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor eax, dword [0x59bd90]
mov ecx, dword [esi + 0x34]
xor ecx, eax
mov dword [esp + 0x48], ecx
mov ecx, dword [0x59bd94]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], eax
movsd xmm0, qword [esp + 0x30]
movsd qword [esp], xmm0
lea edi, [esp + 0x48]
lea edx, [esp + 0x40]
mov ecx, edi
call fcn.004ed610
test byte [0x599068], 0x19
je 0x4ecee1
movsd xmm0, qword [esi + 0x10]
movsd qword [esp + 0x20], xmm0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor eax, dword [0x59bd90]
mov ecx, dword [0x59bd94]
mov edx, dword [esi + 0x34]
xor edx, eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], eax
movsd xmm0, qword [esp + 0x20]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x57d4a9
mov dword [esp + 4], 0x599068
mov dword [esp], 0x45
call fcn.00433670
jmp 0x4ecee1
mov eax, dword [esi + 0x30]
test eax, eax
je 0x4ed288
mov ecx, dword [esi + 0x34]
mov ebx, dword [eax + 0x4c]
xor ecx, dword [0x59bd90]
mov dword [esp + 0x20], ecx
xor ebx, dword [0x59bd94]
mov dword [esp + 0x54], 0x483980
mov dword [esp + 0x58], 0x5845e4
mov dword [esp], 8
mov dword [esp + 0x2c], eax
call fcn.005283f4
mov dword [eax + 4], ebx
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2c]
movsd xmm0, qword [eax + 0x18]
movsd qword [esp + 0x20], xmm0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor eax, dword [0x59bd90]
mov ecx, dword [0x59bd94]
mov edx, dword [esi + 0x34]
xor edx, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
movsd xmm0, qword [esp + 0x20]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0x18], edi
lea eax, [esp + 0x30]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.InterestingTask_QueueingTime
mov dword [esp + 4], 0x599068
mov dword [esp], 0x49
call fcn.00483a70
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4ed151
mov edi, dword [esp + 0x4c]
call dword [section..00cfg]
mov dword [esp], edi
call ecx
test byte [0x599068], 0x19
je 0x4ece9e
mov dword [esp + 0x40], esi
movsd xmm0, qword [esi + 8]
movsd qword [esp + 0x20], xmm0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor eax, dword [0x59bd90]
mov ecx, dword [0x59bd94]
mov edx, dword [esi + 0x34]
xor edx, eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], eax
movsd xmm0, qword [esp + 0x20]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [esp], xmm0
lea edi, [esp + 0x48]
lea edx, [esp + 0x40]
mov ecx, edi
call fcn.004ed8a0
test byte [0x599068], 0x19
je 0x4ece9e
movsd xmm0, qword [esi + 0x10]
movsd qword [esp + 0x20], xmm0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor eax, dword [0x59bd90]
mov ecx, dword [0x59bd94]
mov edx, dword [esi + 0x34]
xor edx, eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], eax
movsd xmm0, qword [esp + 0x20]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 0x10], xmm0
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x57d4a9
mov dword [esp + 4], 0x599068
mov dword [esp], 0x45
call fcn.00433670
jmp 0x4ece9e
mov dword [esp], 0x5aae98
call fcn.00528497
cmp dword [0x5aae98], 0xffffffff
jne 0x4ece2a
mov dword [0x5aae94], 0
mov dword [0x5aae90], 0xffffffff
mov dword [esp], 0
mov ecx, 0x5aae90
call fcn.004624b0
sub esp, 4
mov dword [esp], 0x5aae98
call fcn.0052850d
jmp 0x4ece2a
int3