Function at 0x4e5e00
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov esi, esp
mov dword [esi + 4], ecx
mov eax, dword [0x5f3418]
xor eax, ebp
mov dword [esi + 0x88], eax
cmp byte [ebp + 0x7c], 0
je 0x4e5f34
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
mov ebx, dword [eax + 0x20]
mov eax, dword [ebx]
mov edi, dword [eax + 8]
cmp edi, 0x50d820
jne 0x4e63e8
test byte [0x5f5768], 0x19
jne 0x4e6b67
lea eax, [ebp + 8]
cmp dword [eax + 0x34], 0
jne 0x4e5f27
mov eax, dword [0x6cf6b0]
mov ecx, dword [0x5f75b4]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4e6950
push dword [0x5f50f8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x4e5eae
mov ecx, dword [0x6cf6a8]
mov edx, dword [eax + ecx*8 + 4]
cmp edx, dword [0x6cf6ac]
jne 0x4e5eae
mov eax, dword [eax + ecx*8]
test eax, eax
jne 0x4e652d
mov eax, dword [0x6cf6a0]
mov ecx, dword [0x5f75b4]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4e6904
push dword [0x5f50f8]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 0xfffffffc
je 0x4e5f27
mov ecx, dword [0x6cf698]
mov edx, dword [eax + ecx*8 + 4]
cmp edx, dword [0x6cf69c]
jne 0x4e5f27
mov eax, dword [eax + ecx*8]
test eax, eax
je 0x4e5f27
mov ecx, dword [eax + 0x10]
lea edx, [ebp + 8]
mov dword [edx + 0x34], ecx
movsd xmm0, qword [eax + 0x34]
mov ecx, dword [eax + 0x3c]
mov dword [edx + 0x40], ecx
movsd qword [edx + 0x38], xmm0
mov cl, 1
cmp byte [eax + 0x50], 0
jne 0x4e5f21
cmp dword [eax + 0x40], 0
setne cl
lea eax, [ebp + 8]
mov byte [eax + 0x50], cl
lea eax, [ebp + 8]
cmp dword [eax + 0x44], 0
jne 0x4e6719
lea eax, [ebp + 8]
mov eax, dword [eax + 0x70]
mov dword [esi + 8], eax
mov eax, dword [0x5f5104]
cmp eax, 0x41a420
je 0x4e6a45
mov eax, dword [0x5f5104]
cmp eax, 0x50efc0
jne 0x4e6002
mov eax, dword [esi + 8]
cmp byte [eax], 0
je 0x4e62f5
mov ebx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov eax, dword [0x6bfa98]
mov ecx, dword [0x5f75b4]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4e6810
sub ebx, dword [0x6bfa90]
sbb edi, dword [0x6bfa94]
seto cl
mov eax, edi
sar eax, 0x1f
test cl, cl
cmovne ebx, eax
add eax, 0x80000000
test cl, cl
cmove eax, edi
lea ecx, [ebp + 8]
mov ecx, dword [ecx + 0x4c]
xor ebx, ecx
sar ecx, 0x1f
xor ecx, eax
mov edx, 0x3afb7e91
mov eax, ebx
mul edx
imul edi, ebx, 0xd288ce70
add edi, edx
imul ecx, ecx, 0x3afb7e91
add ecx, edi
add eax, 0xd6388650
adc ecx, 0x346dc5
mov edx, ecx
shrd edx, eax, 4
shld ecx, eax, 0x1c
mov eax, 0xbac710ca
cmp eax, ecx
mov eax, 0x68db8
sbb eax, edx
jae 0x4e699c
mov dword [esi + 8], esp
push eax
sub esp, 0x6c
mov edi, esp
lea edx, [ebp + 8]
mov eax, dword [edx]
mov dword [edi], eax
mov dword [edx], 0
movups xmm0, xmmword [edx + 4]
movups xmmword [edi + 4], xmm0
movups xmm0, xmmword [edx + 0x41]
movups xmmword [edi + 0x41], xmm0
movups xmm0, xmmword [edx + 0x38]
movups xmmword [edi + 0x38], xmm0
movups xmm0, xmmword [edx + 0x18]
movups xmm1, xmmword [edx + 0x28]
movups xmmword [edi + 0x28], xmm1
movups xmmword [edi + 0x18], xmm0
movzx ecx, byte [edx + 0x5a]
mov byte [edi + 0x5a], cl
movzx ecx, word [edx + 0x58]
mov word [edi + 0x58], cx
mov ecx, dword [edx + 0x5c]
mov dword [edi + 0x5c], ecx
mov dword [edx + 0x5c], 0
movq xmm0, qword [edx + 0x60]
movq qword [edi + 0x60], xmm0
mov ecx, dword [edx + 0x68]
mov dword [edi + 0x68], ecx
mov dword [edx + 0x68], 0
mov ecx, dword [edx + 0x6c]
mov dword [edi + 0x6c], ecx
test eax, eax
je 0x4e6a42
mov eax, dword [esi + 4]
lea ecx, [eax + 0x80]
cmp byte [edi + 0x59], 0
je 0x4e6099
mov eax, dword [esi + 4]
inc dword [eax + 0x90]
lea edx, [esi + 0x60]
push edi
call fcn.004e6c80
add esp, 4
mov eax, dword [edi + 0x68]
test eax, eax
jne 0x4e64ac
mov ebx, dword [edi + 0x5c]
test ebx, ebx
jne 0x4e63fd
mov edi, dword [edi]
test edi, edi
jne 0x4e64f3
mov esp, dword [esi + 8]
lea eax, [ebp + 8]
mov eax, dword [eax + 0x70]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x33], 0xffffffff
mov dword [esi + 0x30], 0xffffffff
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x84]
mov ecx, dword [eax + 0x88]
cmp edi, ecx
je 0x4e6541
cmp byte [eax + 0xb4], 0
je 0x4e6541
mov dword [esi], 0
cmp dword [eax + 0x90], 0
je 0x4e6123
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x7c]
xor edx, edx
cmp byte [eax + 0x20], 5
setb dl
mov dword [esi], edx
mov eax, dword [edi + 0x20]
mov dword [esi + 0x20], eax
mov edx, dword [edi + 0x24]
mov eax, dword [edi + 0x2c]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x28]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x30]
mov dword [esi + 0x18], eax
mov al, 1
mov dword [esi + 8], eax
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0x74]
mov dword [esi + 0x1c], 0xffffffff
test ebx, ebx
jne 0x4e659a
mov dword [esi + 0x14], 0xffffffff
mov ecx, dword [esi + 4]
movzx ecx, byte [ecx + 0x118]
cmp byte [esi + 8], 0
je 0x4e64da
test cl, cl
je 0x4e64da
mov edi, dword [esi + 4]
mov ecx, dword [edi + 0x120]
xor ecx, dword [esi + 0x20]
mov edi, dword [edi + 0x124]
xor edi, edx
or edi, ecx
jne 0x4e61cb
mov edi, dword [esi + 4]
mov ecx, dword [edi + 0x128]
xor ecx, dword [esi + 0x10]
mov edi, dword [edi + 0x12c]
xor edi, dword [esi + 0xc]
or edi, ecx
jne 0x4e61cb
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [ecx + 0x130], eax
jne 0x4e61cb
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x18]
cmp dword [ecx + 0x134], eax
je 0x4e62ae
mov ebx, dword [esi + 4]
mov eax, dword [esi + 8]
mov byte [ebx + 0x118], al
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x33]
mov dword [ebx + 0x119], eax
mov dword [ebx + 0x11c], edi
mov dword [ebx + 0x124], edx
mov dword [esi + 0x24], edx
mov edx, dword [esi + 0x20]
mov dword [ebx + 0x120], edx
mov eax, dword [esi + 0xc]
mov dword [ebx + 0x12c], eax
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x128], eax
mov eax, dword [esi]
mov dword [ebx + 0x130], eax
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x134], eax
mov ecx, dword [esi + 0x14]
mov dword [ebx + 0x13c], ecx
mov ecx, dword [esi + 0x1c]
mov dword [ebx + 0x138], ecx
mov edi, dword [ebx + 0x70]
mov dword [esi + 0x28], edi
mov eax, dword [esi + 8]
mov byte [esi + 0x60], al
mov edi, dword [esi + 0x33]
mov dword [esi + 0x64], edi
mov edi, dword [esi + 0x30]
mov dword [esi + 0x61], edi
mov dword [esi + 0x68], edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0x6c], edx
mov eax, dword [esi + 0x10]
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x74], eax
mov eax, dword [esi]
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x7c], eax
mov dword [esi + 0x80], ecx
mov eax, dword [esi + 0x14]
mov dword [esi + 0x84], eax
sub esp, 0x30
movsd xmm0, qword [esi + 0x80]
movsd qword [esp + 0x28], xmm0
movdqu xmm0, xmmword [esi + 0x60]
movups xmm1, xmmword [esi + 0x70]
movups xmmword [esp + 0x18], xmm1
movdqu xmmword [esp + 8], xmm0
mov eax, dword [esi + 0x2c]
mov dword [esp + 4], eax
mov dword [esp], ebx
mov ecx, dword [esi + 0x28]
call fcn.004e7990
test byte [0x5f5ae0], 9
jne 0x4e6a4f
lea ebx, [ebp + 8]
mov eax, dword [ebx + 0x68]
test eax, eax
jne 0x4e64c3
mov edi, dword [ebx + 0x5c]
test edi, edi
jne 0x4e6454
mov edi, dword [ebx]
test edi, edi
jne 0x4e6510
mov ecx, dword [esi + 0x88]
xor ecx, ebp
call fcn.00512ee3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x78
mov ebx, dword [eax + 0x18]
mov eax, dword [ebx]
mov edi, dword [eax + 4]
cmp edi, 0x4e9900
jne 0x4e6571
mov ecx, dword [fcn.00509260]
cmp ecx, 0x50efc0
jne 0x4e6586
xor eax, eax
lea edi, [esi + 0x60]
mov dword [edi + 4], eax
mov dword [edi], eax
push edi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [edi]
mov edi, dword [edi + 4]
mov ecx, 0x7bd05af6
cmp ecx, eax
mov ecx, 0x863
sbb ecx, edi
jge 0x4e6be7
mov ecx, dword [0x6c02b0]
mov dword [esi + 0xc], ecx
mov edx, dword [0x6c02b4]
mov dword [esi], edx
push edx
push ecx
push edi
push eax
mov dword [esi + 0x18], eax
call fcn.00517110
mov dword [esi + 0x10], edi
mov ebx, edx
mov ecx, eax
mov edi, dword [esi + 0xc]
mul edi
mov dword [esi + 0x14], eax
mov eax, ecx
imul ecx, dword [esi]
add edx, ecx
imul ecx, ebx, 0xf4240
mov dword [esi + 0x20], ecx
imul ebx, edi
add ebx, edx
mov ecx, dword [esi + 0x18]
sub ecx, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
sbb edi, ebx
mov edx, 0xf4240
mul edx
mov dword [esi + 0x10], eax
mov ebx, edx
add ebx, dword [esi + 0x20]
mov eax, ecx
mov ecx, 0xf4240
mul ecx
imul ecx, edi, 0xf4240
add edx, ecx
push dword [esi]
push dword [esi + 0xc]
push edx
push eax
call fcn.00517110
add eax, dword [esi + 0x10]
adc edx, ebx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
mov eax, dword [esi + 8]
cmp byte [eax], 0
mov ebx, dword [esi + 0x38]
mov edi, dword [esi + 0x3c]
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edi
jne 0x4e5f6f
mov byte [eax], 1
jmp 0x4e5f6f
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
lea eax, [ebp + 8]
push eax
call edi
jmp 0x4e5f27
lock dec dword [ebx + 4]
jne 0x4e60bb
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
cmp ecx, 0x50b580
jne 0x4e66f4
mov eax, dword [eax + 4]
cmp eax, 0x501670
jne 0x4e67e8
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4e6436
lock dec dword [eax]
je 0x4e6a26
mov eax, dword [ebx + 8]
test eax, eax
je 0x4e6446
lock dec dword [eax]
je 0x4e69ad
push ebx
call fcn.0050fc7c
add esp, 4
jmp 0x4e60bb
lock dec dword [edi + 4]
jne 0x4e62d4
mov eax, dword [edi]
mov ebx, dword [eax + 8]
cmp ebx, 0x50b580
jne 0x4e6705
mov ebx, dword [eax + 4]
cmp ebx, 0x501670
jne 0x4e67fd
mov eax, dword [edi + 0xc]
test eax, eax
je 0x4e648e
lock dec dword [eax]
je 0x4e6a34
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x4e649e
lock dec dword [ebx]
je 0x4e69ec
push edi
call fcn.0050fc7c
add esp, 4
jmp 0x4e6711
lock dec dword [eax]
jne 0x4e60b0
push eax
call fcn.0050fc7c
add esp, 4
jmp 0x4e60b0
lock dec dword [eax]
jne 0x4e62c9
push eax
call fcn.0050fc7c
add esp, 4
jmp 0x4e62c9
cmp byte [esi + 8], 0
setne ch
test cl, cl
setne cl
cmp ch, cl
je 0x4e62ae
jmp 0x4e61cb
lock dec dword [edi]
jne 0x4e60c5
mov ecx, dword [edi + 8]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
jmp 0x4e60c5
lock dec dword [edi]
jne 0x4e62de
mov ecx, dword [edi + 8]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
jmp 0x4e62de
mov ecx, dword [eax + 8]
lea edx, [ebp + 8]
mov dword [edx + 0x48], ecx
mov eax, dword [eax + 4]
mov dword [edx + 0x44], eax
jmp 0x4e5eae
mov dword [esi + 8], 0
mov dword [esi + 0x20], 0
xor edx, edx
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
mov dword [esi], 0
mov dword [esi + 0x18], 0
jmp 0x4e6143
mov ecx, edi
call dword [section..00cfg]
lea eax, [esi + 0x38]
mov ecx, ebx
push eax
call edi
jmp 0x4e63c8
call dword [section..00cfg]
lea eax, [esi + 0x38]
push eax
call ecx
add esp, 4
jmp 0x4e63c8
mov dword [esi + 0x24], edx
mov edx, dword [esi + 4]
cmp byte [edx + 0xb4], 0
je 0x4e6c0e
mov eax, dword [edx + 0x78]
mov byte [esi + 0x14], 1
cmp dword [eax + 8], 0
jne 0x4e6625
mov eax, dword [edx + 0x7c]
cmp dword [eax + 8], 0
jne 0x4e6625
cmp edi, ecx
je 0x4e65fc
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2b8]
mov dword [esi + 0x1c], eax
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esi + 0x28], ecx
call dword [section..00cfg]
mov ecx, dword [esi + 0x1c]
lea eax, [esi + 0x60]
push eax
call dword [esi + 0x28]
mov eax, dword [esi + 0x60]
cmp eax, dword [edi + 0x20]
mov eax, dword [esi + 0x64]
sbb eax, dword [edi + 0x24]
jge 0x4e6625
mov edi, dword [esi + 4]
lea eax, [edi + 0x10]
mov dword [esi + 0x1c], eax
push eax
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4e6c1f
cmp dword [edi + 0x20], 0
setne byte [esi + 0x14]
push dword [esi + 0x1c]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esi + 8]
mov byte [esi + 0x38], al
mov eax, dword [esi + 0x30]
mov dword [esi + 0x39], eax
mov eax, dword [esi + 0x33]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x4c], eax
mov eax, dword [esi]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x54], eax
xor eax, eax
dec eax
mov dword [esi + 0x5c], eax
mov dword [esi + 0x58], eax
mov eax, dword [ebx]
mov edi, dword [eax + 8]
mov ecx, edi
call dword [section..00cfg]
sub esp, 0x34
movsd xmm0, qword [esi + 0x58]
movsd qword [esp + 0x28], xmm0
movdqu xmm0, xmmword [esi + 0x38]
movups xmm1, xmmword [esi + 0x48]
movups xmmword [esp + 0x18], xmm1
movdqu xmmword [esp + 8], xmm0
movzx eax, byte [esi + 0x14]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 4], eax
lea eax, [esi + 0x60]
mov dword [esp], eax
mov ecx, ebx
call edi
mov al, byte [esi + 0x60]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x61]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x64]
mov dword [esi + 0x33], eax
mov edx, dword [esi + 0x6c]
mov eax, dword [esi + 0x68]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x74]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x84]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x80]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x78]
mov dword [esi], eax
mov eax, dword [esi + 0x7c]
mov dword [esi + 0x18], eax
jmp 0x4e615f
mov dword [esi], ecx
call dword [section..00cfg]
mov ecx, ebx
call dword [esi]
jmp 0x4e60bb
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
call ebx
lea ebx, [ebp + 8]
jmp 0x4e62d4
mov eax, dword [esi + 4]
cmp byte [eax + 0x148], 0
je 0x4e5f34
test byte [0x5f5a50], 9
je 0x4e5f34
mov eax, dword [esi + 4]
cmp byte [eax + 0xb4], 0
jne 0x4e5f34
mov eax, dword [esi + 4]
cmp byte [eax + 0x160], 0
je 0x4e5f34
xor eax, eax
dec eax
mov dword [esi + 0x3c], eax
mov dword [esi + 0x38], eax
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
mov edi, dword [eax + 0x2b8]
mov eax, dword [edi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
lea eax, [esi + 0x60]
mov ecx, edi
push eax
call ebx
mov eax, dword [esi + 4]
cmp byte [eax + 0x148], 0
je 0x4e6c72
mov eax, dword [esi + 0x60]
mov edx, dword [esi + 4]
sub eax, dword [edx + 0x150]
mov ecx, dword [esi + 0x64]
sbb ecx, dword [edx + 0x154]
seto bl
mov edx, ecx
sar edx, 0x1f
test bl, bl
cmovne eax, edx
add edx, 0x80000000
test bl, bl
cmove edx, ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
test byte [0x5f5a50], 0x19
je 0x4e5f34
lea eax, [esi + 0x38]
lea ecx, [esi + 0x60]
mov dword [ecx], eax
lea eax, [ebp + 8]
mov dword [ecx + 4], eax
call fcn.00590aa0
jmp 0x4e5f34
mov ecx, eax
mov dword [esi], eax
call dword [section..00cfg]
mov ecx, ebx
push 1
call dword [esi]
jmp 0x4e60bb
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
push 1
call ebx
jmp 0x4e6711
push 0x6bfa98
call fcn.00510c6d
add esp, 4
cmp dword [0x6bfa98], 0xffffffff
jne 0x4e5f90
mov ecx, dword [0x6bfaa4]
mov eax, dword [0x6bfaa0]
mov edx, eax
or edx, ecx
mov edx, 0x7fffffff
je 0x4e686b
mov dword [0x6bfa90], eax
mov dword [0x6bfa94], ecx
xor eax, eax
dec eax
mov dword [0x6bfaa0], eax
mov dword [0x6bfaa4], edx
push 0x6bfa98
call fcn.00510d9d
add esp, 4
jmp 0x4e5f90
lea eax, [esi + 0x60]
push eax
call fcn.00509260
add esp, 4
lea eax, [esi + 0x38]
push eax
call fcn.005093a0
add esp, 4
mov eax, 0xb779c000
lea ecx, [esi + 0x38]
add eax, dword [ecx]
mov edx, 0xffd6a169
adc edx, dword [ecx + 4]
seto byte [esi]
mov ecx, edx
sar ecx, 0x1f
cmp byte [esi], 0
cmovne eax, ecx
add ecx, 0x80000000
cmp byte [esi], 0
cmove ecx, edx
xor edx, edx
dec edx
mov dword [esi], eax
add edx, eax
mov eax, 0x7fffffff
adc eax, ecx
add edx, 2
adc eax, 0
cmp edx, 2
sbb eax, 0
lea edx, [esi + 0x60]
mov eax, dword [edx]
mov edx, dword [edx + 4]
jb 0x4e6c38
sub eax, dword [esi]
mov dword [esi], eax
sbb edx, ecx
seto cl
mov byte [esi + 0xc], cl
mov eax, edx
sar eax, 0x1f
test cl, cl
lea ecx, [eax - 0x80000000]
cmove eax, dword [esi]
cmp byte [esi + 0xc], 0
cmove ecx, edx
mov edx, 0x7fffffff
jmp 0x4e6840
push 0x6cf6a0
call fcn.00510c6d
add esp, 4
cmp dword [0x6cf6a0], 0xffffffff
jne 0x4e5ecf
mov dword [0x6cf69c], 0
mov dword [0x6cf698], 0xffffffff
mov ecx, 0x6cf698
push 0
call fcn.0040c200
push 0x6cf6a0
call fcn.00510d9d
add esp, 4
jmp 0x4e5ecf
push 0x6cf6b0
call fcn.00510c6d
add esp, 4
cmp dword [0x6cf6b0], 0xffffffff
jne 0x4e5e80
mov dword [0x6cf6ac], 0
mov dword [0x6cf6a8], 0xffffffff
mov ecx, 0x6cf6a8
push 0
call fcn.0040c200
push 0x6cf6b0
call fcn.00510d9d
add esp, 4
jmp 0x4e5e80
lea eax, [esi + 0x60]
mov ecx, dword [esi + 8]
push eax
call fcn.004ea110
jmp 0x4e6002
mov dword [esi], eax
mov eax, dword [eax + 0x10]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x6c24fc]
bt edx, ecx
jb 0x4e6c56
mov eax, dword [esi]
mov dword [eax + 0x10], 0
lea ecx, [eax + 4]
call fcn.0040dae0
push dword [esi]
call fcn.0050fc7c
add esp, 4
jmp 0x4e6446
mov eax, dword [ebx + 0x10]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x6c24fc]
bt edx, ecx
jb 0x4e6c64
mov dword [ebx + 0x10], 0
lea ecx, [ebx + 4]
call fcn.0040dae0
push ebx
call fcn.0050fc7c
add esp, 4
jmp 0x4e649e
push eax
call fcn.0050fc7c
add esp, 4
jmp 0x4e6436
push eax
call fcn.0050fc7c
add esp, 4
jmp 0x4e648e
int3
call fcn.0041a450
jmp 0x4e5f4d
mov eax, dword [esi + 4]
mov eax, dword [eax + 8]
mov edi, dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp edi, eax
jne 0x4e62bb
mov eax, dword [esi + 4]
lea ebx, [eax + 0x10]
push ebx
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4e6c2c
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x20]
mov dword [esi], eax
mov eax, dword [edx + 0x78]
mov ecx, dword [edx + 0x7c]
mov ecx, dword [ecx + 8]
mov dword [esi + 8], ecx
mov eax, dword [eax + 8]
mov dword [esi + 0xc], eax
mov eax, dword [edx + 0x88]
mov dword [esi + 0x10], eax
mov edi, dword [edx + 0x84]
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test byte [0x5f5ae0], 0x19
je 0x4e62bb
mov eax, dword [esi + 0x10]
sub eax, edi
mov edi, dword [esi + 8]
add edi, dword [esi]
add edi, dword [esi + 0xc]
sar eax, 4
imul eax, eax, 0xb6db6db7
add edi, eax
mov eax, dword [esi + 4]
push dword [eax]
call fcn.00590a80
add esp, 4
mov ebx, eax
lea eax, [esi + 0x38]
push eax
call fcn.00509260
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x60], xmm0
movdqa xmmword [esi + 0x70], xmm0
mov word [esi + 0x60], 0x301
mov dword [esi + 0x64], str.value
mov ecx, edi
sar ecx, 0x1f
mov dword [esi + 0x74], ecx
mov dword [esi + 0x70], edi
sub esp, 0x30
lea ecx, [esi + 0x38]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x2c], eax
lea edi, [esi + 0x60]
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], eax
pxor xmm0, xmm0
movdqu xmmword [esp + 0xc], xmm0
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x5f5ae0
mov dword [esp], 0x43
call fcn.0057dbc0
add esp, 0x30
mov ecx, edi
call fcn.005558d0
jmp 0x4e62bb
add ebx, 0x138
lea eax, [ebp + 8]
mov edi, dword [eax + 0x4c]
xor ebx, dword [0x6be1e0]
xor edi, dword [0x6be1e4]
lea eax, [esi + 0x60]
mov dword [eax + 0xc], 0x5815e0
mov dword [eax + 0x10], 0x5e2e9c
push 8
call fcn.00510d64
add esp, 4
mov dword [eax + 4], edi
mov dword [eax], ebx
lea ecx, [esi + 0x60]
mov dword [ecx + 4], eax
xor eax, eax
push ecx
mov edi, ecx
push eax
push eax
push 0x5e2088
push 0x5e81e8
push 0x5f5768
push 0x49
call fcn.00581700
add esp, 0x1c
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4e5e52
mov edi, dword [esi + 0x64]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
jmp 0x4e5e52
mov ecx, 0xf4240
mul ecx
imul ecx, edi, 0xf4240
add ecx, edx
push dword [0x6c02b4]
push dword [0x6c02b0]
push ecx
push eax
call fcn.00517110
jmp 0x4e63c2
xor eax, eax
dec eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x14], eax
mov edx, dword [esi + 0x24]
jmp 0x4e615f
mov ecx, dword [esi + 0x1c]
call fcn.004f8930
jmp 0x4e6614
mov ecx, ebx
call fcn.004f8930
jmp 0x4e6a7b
xor eax, dword [esi]
xor edx, ecx
or edx, eax
mov eax, 0xffffffff
mov ecx, 0x7fffffff
mov edx, 0x7fffffff
jne 0x4e6840
int3
push eax
call fcn.004e3ba0
add esp, 4
jmp 0x4e69cc
push eax
call fcn.004e3ba0
add esp, 4
jmp 0x4e6a09
call fcn.00551ef0
int3