Function at 0x1f01a200
Capabilities:
Check for time delay via queryperformancecounter
Create thread
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x810
push esi
push edi
mov eax, dword fs:[0]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0xbc], 1
mov ecx, dword [ebp + 8]
add ecx, 0xa8
mov edx, 1
lock xadd dword [ecx], edx
lea eax, [ebp - 0xb8]
push eax
call fcn.1f01d9f0
add esp, 4
call fcn.1f00104b
mov dword [ebp - 0x3c], eax
mov ecx, dword [0x1f0837c0]
mov dword [ebp - 0x75c], ecx
cmp dword [ebp - 0x75c], 0x40
jae 0x1f01a27e
mov edx, dword [ebp - 0x75c]
push edx
call section..text
mov dword [ebp - 0x24], eax
jmp 0x1f01a28e
mov eax, dword [ebp - 0x75c]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x1b30], 0
jne 0x1f01a2ad
mov edx, dword [ebp + 8]
cmp dword [edx + 0x1b2c], 0
je 0x1f01a2b4
mov dword [ebp - 0x14], 1
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
jne 0x1f01a2cd
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x9c], 0
je 0x1f01a46b
mov dword [ebp - 0x1c], 0
mov edx, dword [0x1f0837c4]
mov dword [ebp - 0x760], edx
cmp dword [ebp - 0x760], 0x40
jae 0x1f01a2fd
mov eax, dword [ebp - 0x760]
push eax
call section..text
mov dword [ebp - 0x764], eax
jmp 0x1f01a310
mov ecx, dword [ebp - 0x760]
push ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [ebp - 0x764], eax
cmp dword [ebp - 0x764], 0
jbe 0x1f01a322
mov dword [ebp - 0x14], 1
jmp 0x1f01a35a
cmp dword [ebp - 0x24], 0
je 0x1f01a342
mov edx, dword [ebp - 0x24]
cmp dword [edx], 0
jne 0x1f01a339
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x1c], 0
jne 0x1f01a340
mov dword [ebp - 0x14], 1
jmp 0x1f01a35a
call fcn.1f014150
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 0x1c], 0
jne 0x1f01a35a
mov dword [ebp - 0x14], 1
cmp dword [ebp - 0x14], 0
jne 0x1f01a3d7
mov edx, dword [ebp + 8]
cmp dword [edx + 0x90], 0
je 0x1f01a3d7
mov eax, dword [ebp + 8]
cmp dword [eax + 0xa8], 1
jle 0x1f01a3d7
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x7b4], edx
mov eax, dword [ebp - 0x7b4]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x7b4]
mov ecx, dword [eax + edx + 0x10]
mov dword [ebp - 0x30], ecx
jmp 0x1f01a3a7
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 8]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x1f01a3d7
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
cmp ecx, dword [ebp + 8]
jne 0x1f01a3d5
mov edx, dword [ebp - 4]
cmp dword [edx + 0x1b1c], 0
je 0x1f01a3d5
mov dword [ebp - 0x14], 1
jmp 0x1f01a3d7
jmp 0x1f01a39e
cmp dword [ebp - 0x14], 0
je 0x1f01a44d
mov eax, dword [ebp + 8]
cmp dword [eax + 0x9c], 0
je 0x1f01a3f4
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x48], edx
jmp 0x1f01a3fd
mov eax, dword [ebp + 8]
add eax, 0x24
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp + 8]
add ecx, 0xa8
or edx, 0xffffffff
lock xadd dword [ecx], edx
mov eax, dword [ebp + 8]
cmp dword [eax + 0xa8], 0
jge 0x1f01a426
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xa8], 0
mov edx, dword [ebp - 0x3c]
push edx
call fcn.1f001055
lea eax, [ebp - 0xb8]
push eax
call fcn.1f01da20
add esp, 4
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x48]
mov dword [ecx], edx
xor eax, eax
jmp 0x1f01b9ca
mov eax, dword [ebp - 0x24]
mov dword [eax], 1
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xac]
push edx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
jmp 0x1f01a686
mov eax, dword [ebp + 8]
mov dword [eax + 0xa0], 1
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0xb4]
push edx
mov eax, dword [ebp + 8]
add eax, 0x14
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xb0]
push edx
call fcn.1f03f7a0
add esp, 0xc
mov eax, dword [0x1f0837c4]
mov dword [ebp - 0x768], eax
cmp dword [ebp - 0x768], 0x40
jae 0x1f01a4c4
mov ecx, dword [ebp - 0x768]
push ecx
call section..text
mov dword [ebp - 0x76c], eax
jmp 0x1f01a4d7
mov edx, dword [ebp - 0x768]
push edx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [ebp - 0x76c], eax
cmp dword [ebp - 0x76c], 0
jbe 0x1f01a4e9
mov dword [ebp - 0x14], 1
jmp 0x1f01a521
cmp dword [ebp - 0x24], 0
je 0x1f01a509
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0
jne 0x1f01a500
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 0x1c], 0
jne 0x1f01a507
mov dword [ebp - 0x14], 1
jmp 0x1f01a521
call fcn.1f014150
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x24]
cmp dword [edx + 0x1c], 0
jne 0x1f01a521
mov dword [ebp - 0x14], 1
cmp dword [ebp - 0x14], 0
je 0x1f01a64b
cmp dword [ebp - 0x24], 0
jne 0x1f01a59a
call fcn.1f014450
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0
je 0x1f01a567
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp + 8]
mov dword [eax + 4], ecx
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0x44]
mov dword [edx], eax
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x1f01da30
jmp 0x1f01a598
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x44]
mov dword [edx], eax
mov ecx, dword [ebp + 8]
add ecx, 0xa8
or edx, 0xffffffff
lock xadd dword [ecx], edx
mov eax, dword [ebp + 8]
cmp dword [eax + 0xa8], 0
jge 0x1f01a598
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xa8], 0
jmp 0x1f01a618
mov edx, dword [ebp - 0x24]
cmp dword [edx + 0x70], 0xa
jne 0x1f01a5d6
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x44]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
add edx, 0xa8
or eax, 0xffffffff
lock xadd dword [edx], eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xa8], 0
jge 0x1f01a5d4
mov edx, dword [ebp + 8]
mov dword [edx + 0xa8], 0
jmp 0x1f01a618
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x70]
mov edx, dword [ebp - 0x24]
lea eax, [edx + ecx*8 + 0x20]
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp + 8]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x44]
mov dword [eax], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x70]
add eax, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 0x70], eax
mov edx, dword [ebp + 0xc]
mov dword [edx], 0x1f01da60
mov eax, dword [ebp - 0x3c]
push eax
call fcn.1f001055
lea ecx, [ebp - 0xb8]
push ecx
call fcn.1f01da20
add esp, 4
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x8c]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x48]
mov dword [ecx], edx
xor eax, eax
jmp 0x1f01b9ca
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xac]
push ecx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 0xc8]
push edx
call dword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov dword [ebp - 0x1c], eax
push 0xf
mov eax, dword [ebp - 0xc8]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x1b0c], 0
je 0x1f01a6b0
cmp dword [0x1f06c378], 0
jne 0x1f01a6a4
cmp dword [0x1f083738], 0
je 0x1f01a6b0
mov dword [ebp - 0x7b8], 1
jmp 0x1f01a6ba
mov dword [ebp - 0x7b8], 0
mov edx, dword [ebp - 0x7b8]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x28]
push eax
mov ecx, dword [ebp - 0x20]
push ecx
push 1
call fcn.1f019310
add esp, 0xc
mov edx, dword [0x1f0837c4]
mov dword [ebp - 0x770], edx
cmp dword [ebp - 0x770], 0x40
jae 0x1f01a70a
mov eax, dword [ebp - 0x770]
push eax
call section..text
mov dword [ebp - 0x774], eax
jmp 0x1f01a71d
mov ecx, dword [ebp - 0x770]
push ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [ebp - 0x774], eax
mov edx, dword [ebp - 0x774]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x77c], eax
mov ecx, dword [0x1f0837c4]
mov dword [ebp - 0x778], ecx
cmp dword [ebp - 0x778], 0x40
jae 0x1f01a75c
mov edx, dword [ebp - 0x77c]
push edx
mov eax, dword [ebp - 0x778]
push eax
call fcn.1f001021
jmp 0x1f01a770
mov ecx, dword [ebp - 0x77c]
push ecx
mov edx, dword [ebp - 0x778]
push edx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 8]
mov eax, dword [edx]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 8]
cmp dword [edx + ecx + 0x10], 0
je 0x1f01a7df
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 8]
mov ecx, dword [eax + edx + 0x10]
mov edx, dword [ecx]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x1d28], 0
jne 0x1f01a7ad
jmp 0x1f01a7df
mov ecx, dword [ebp - 8]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + eax + 0x10]
push edx
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
mov eax, dword [ebp - 8]
add eax, dword [ecx + 4]
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + edx]
mov ecx, eax
mov eax, dword [edx + 0x20]
call eax
jmp 0x1f01a779
mov ecx, dword [ebp - 8]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 8]
add ecx, dword [edx + 4]
mov edx, dword [ebp - 8]
mov eax, dword [edx + eax]
mov edx, dword [eax + 4]
call edx
mov dword [ebp - 0x30], eax
mov eax, dword [0x1f0837c4]
mov dword [ebp - 0x780], eax
cmp dword [ebp - 0x780], 0x40
jae 0x1f01a826
mov ecx, dword [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x780]
push edx
call fcn.1f001021
jmp 0x1f01a837
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x780]
push ecx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov edx, dword [ebp - 0x30]
mov eax, dword [edx]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov dword [ecx + 0x38], edx
mov ecx, 0xc
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp - 4]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x44]
mov dword [eax + 0x34], ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
mov dword [edx + 0x30], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
mov dword [ecx + 0xa4], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x3c], ecx
xor edx, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0x18], 0
je 0x1f01a952
mov eax, dword [ebp - 4]
add eax, 0x60
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x60]
mov dword [ebp - 0xe0], edx
mov eax, dword [ecx + 0x64]
mov dword [ebp - 0xdc], eax
mov ecx, dword [ebp - 0xe0]
sub ecx, dword [0x1f082a00]
mov edx, dword [ebp - 0xdc]
sbb edx, dword [0x1f082a04]
push 0
push 0x3e8
push edx
push ecx
call fcn.1f040910
push 0
push 0x3e8
push edx
push eax
call fcn.1f040910
push 0
push 0xa
push edx
push eax
call fcn.1f040910
mov ecx, dword [0x1f0829fc]
push ecx
mov ecx, dword [0x1f0829f8]
push ecx
push edx
push eax
call fcn.1f040860
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], edx
mov edx, dword [ebp - 0xe0]
add edx, dword [0x1f0834b0]
mov eax, dword [ebp - 0xdc]
adc eax, dword [0x1f0834b4]
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xdc], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xdc]
mov dword [ecx + 0x1a5c], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0xe0]
mov dword [eax + 0x1a58], ecx
mov edx, dword [ebp - 0x44]
push edx
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
test eax, eax
je 0x1f01a9e6
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1b74], 0
jne 0x1f01a9e6
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x38]
mov eax, dword [edx + 0x1b04]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x38]
mov eax, dword [edx + 0x1b08]
push eax
push str.Invalid_return_address_for__s_in__s__you_should_use_DontHookReturnAddress_option_for_this_hook_:_this_is_not_a_function_start
push 0x30c
lea ecx, [ebp - 0x6f8]
push ecx
call fcn.1f03e8e1
add esp, 0x14
lea edx, [ebp - 0x6f8]
push edx
push 2
call fcn.1f0291c0
mov eax, dword [ebp + 8]
mov dword [eax + 0x1b74], 1
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0xb6]
cmp edx, 4
je 0x1f01a9e6
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0xb6]
cmp ecx, 3
je 0x1f01a9e6
mov edx, dword [ebp + 8]
mov byte [edx + 0xb6], 3
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1b74], 0
jne 0x1f01aa17
mov ecx, dword [ebp - 4]
add ecx, 0x44
push ecx
mov edx, dword [ebp - 4]
add edx, 0x40
push edx
call fcn.1f01a050
add esp, 8
neg eax
sbb eax, eax
add eax, 1
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x48], eax
jmp 0x1f01aa21
mov edx, dword [ebp - 4]
mov dword [edx + 0x48], 1
mov eax, dword [ebp - 4]
mov dword [eax + 0x50], 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x1b10], 0
mov edx, dword [ebp - 4]
mov dword [edx + 0x1b14], 0
mov eax, dword [ebp - 4]
mov dword [eax + 0x1b18], 0
mov ecx, dword [ebp - 0x44]
push ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
push eax
call fcn.1f013e50
add esp, 8
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x28], 0
cmp dword [ebp - 0x18], 0
jne 0x1f01aaa9
cmp dword [0x1f06c37c], 0
je 0x1f01aa8d
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x90], 0
jne 0x1f01aaa9
mov edx, dword [ebp + 8]
cmp dword [edx + 0x94], 0
jne 0x1f01aaa9
mov eax, dword [ebp + 8]
cmp dword [eax + 0x98], 0
je 0x1f01ac35
mov dword [ebp - 0xcc], 0
cmp dword [0x1f06c380], 0
je 0x1f01aada
cmp dword [0x1f06c384], 0
je 0x1f01aada
cmp dword [0x1f083738], 0
jne 0x1f01aada
mov dword [ebp - 0x7bc], 0
jmp 0x1f01aae4
mov dword [ebp - 0x7bc], 1
push 0
mov ecx, dword [ebp - 0x7bc]
push ecx
push 1
lea edx, [ebp - 0xcc]
push edx
mov eax, dword [ebp - 4]
add eax, 0x70
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x1b20
push ecx
mov edx, dword [ebp - 4]
add edx, 0x5c
push edx
mov eax, dword [ebp - 0xc0]
push eax
mov ecx, dword [0x1f083714]
call fcn.1f026cc0
test eax, eax
je 0x1f01ab45
mov ecx, dword [ebp - 0xc0]
push ecx
push 0
call fcn.1f029e00
add esp, 8
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x70]
sub ecx, eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x70], ecx
jmp 0x1f01ab75
mov eax, dword [ebp - 4]
mov dword [eax + 0x1b18], 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x1b14], 1
xor edx, edx
mov eax, dword [ebp - 4]
mov word [eax + 0x1b20], dx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x70], 0
cmp dword [0x1f083738], 0
je 0x1f01ab88
mov dword [ebp - 0xcc], 1
cmp dword [0x1f06c380], 0
je 0x1f01abd6
cmp dword [ebp - 0xcc], 0
jne 0x1f01abbb
mov edx, dword [ebp + 8]
cmp dword [edx + 0x1b14], 0
jne 0x1f01abbb
cmp dword [0x1f083738], 0
jne 0x1f01abbb
mov dword [ebp - 0x7c0], 0
jmp 0x1f01abc5
mov dword [ebp - 0x7c0], 1
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x7c0]
mov dword [eax + 0x1b14], ecx
jmp 0x1f01abe3
mov edx, dword [ebp - 4]
mov dword [edx + 0x1b14], 1
cmp dword [0x1f06c384], 0
je 0x1f01ac28
cmp dword [ebp - 0xcc], 0
jne 0x1f01ac0d
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1b18], 0
jne 0x1f01ac0d
mov dword [ebp - 0x7c4], 0
jmp 0x1f01ac17
mov dword [ebp - 0x7c4], 1
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x7c4]
mov dword [ecx + 0x1b18], edx
jmp 0x1f01ac35
mov eax, dword [ebp - 4]
mov dword [eax + 0x1b18], 1
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x94], 0
je 0x1f01ad82
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x714], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x1b18]
mov dword [ebp - 0x708], edx
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x710], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x5c]
mov dword [ebp - 0x70c], edx
mov dword [ebp - 0x704], esp
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x94]
mov dword [ebp - 0x7c8], ecx
push 0
push 1
mov edx, dword [ebp - 0x7c8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x7c8]
add ecx, dword [eax + 4]
call fcn.1f02da00
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x94]
mov dword [ebp - 0x7cc], edx
mov eax, dword [ebp - 0x7cc]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x7cc]
mov ecx, dword [eax + edx + 0x24]
mov dword [ebp - 0x30], ecx
jmp 0x1f01acd9
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 4]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x1f01ad5d
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx]
mov dword [ebp - 0x700], edx
mov eax, dword [ebp - 0x700]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
test eax, eax
je 0x1f01acff
jmp 0x1f01acd0
mov edx, dword [ebp - 0x700]
mov eax, dword [edx + 4]
push eax
lea ecx, [ebp - 0x714]
push ecx
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [ebp - 0x700]
mov edx, dword [ecx]
call edx
mov dword [ebp - 0x6fc], eax
cmp esp, dword [ebp - 0x704]
je 0x1f01ad4d
mov esp, dword [ebp - 0x704]
push 1
mov eax, dword [ebp - 0x700]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.1f0174e0
add esp, 0xc
cmp dword [ebp - 0x6fc], 0
jne 0x1f01ad58
jmp 0x1f01ad5d
jmp 0x1f01acd0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x94]
mov dword [ebp - 0x7d0], ecx
mov edx, dword [ebp - 0x7d0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x7d0]
add ecx, dword [eax + 4]
call fcn.1f02da70
cmp dword [ebp - 0x18], 0
je 0x1f01b186
mov ecx, dword [0x1f06c374]
push ecx
lea edx, [ebp - 0x744]
push edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x28]
push ecx
call fcn.1f0081e0
add esp, 0xc
test eax, eax
je 0x1f01ae56
mov eax, dword [ebp - 0x728]
imul eax, eax, 0x64
xor edx, edx
div dword [ebp - 0x72c]
mov byte [ebp - 0x745], al
movzx edx, byte [ebp - 0x745]
cmp edx, 0x50
jg 0x1f01ade0
cmp dword [ebp - 0x720], 0x8000
jge 0x1f01ae56
push 0x400
push 0
mov eax, dword [0x1f0837bc]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x74c], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x1b08]
push edx
mov eax, dword [ebp - 0x720]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
movzx ecx, byte [ebp - 0x745]
push ecx
push str.Warning__u___of_stack_of_thread_0x_X_used__only__u_bytes_left_at_begin_of_function__s
push 0x200
mov edx, dword [ebp - 0x74c]
push edx
call fcn.1f03e8e1
add esp, 0x1c
mov eax, dword [ebp - 0x74c]
push eax
push 2
call fcn.1f0291c0
mov ecx, dword [ebp - 0x74c]
push ecx
push 0
mov edx, dword [0x1f0837bc]
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edi, dword [ebp - 4]
add edi, 0x74
mov ecx, 0xc
mov esi, dword [ebp + 0x10]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x1a54], ecx
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 0xb6]
cmp eax, 3
je 0x1f01ae9c
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0xb6]
cmp edx, 2
je 0x1f01ae9c
mov dword [ebp - 0x7d4], 0
jmp 0x1f01aea6
mov dword [ebp - 0x7d4], 1
mov eax, dword [ebp - 0x7d4]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0xb6]
neg edx
sbb edx, edx
add edx, 1
mov eax, dword [ebp - 4]
mov dword [eax + 0x1b10], edx
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x1b0c], 0
je 0x1f01b173
mov edx, dword [ebp - 4]
cmp dword [edx + 0x1b10], 0
jne 0x1f01af23
cmp dword [ebp - 0x40], 0
jne 0x1f01af23
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1b20]
and ecx, 1
mov edx, dword [eax + 0x1b24]
and edx, 0
mov dword [ebp - 0x7dc], ecx
mov dword [ebp - 0x7d8], edx
mov eax, dword [ebp - 0x7dc]
or eax, dword [ebp - 0x7d8]
jne 0x1f01af23
cmp dword [0x1f06c38c], 0
je 0x1f01af2f
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x1b14], 0
jne 0x1f01af3c
cmp dword [0x1f083738], 0
je 0x1f01b173
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 0xb5]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0xac], eax
mov edx, dword [ebp - 0x38]
push edx
mov eax, dword [ebp - 4]
add eax, 0xa8
push eax
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
call fcn.1f018840
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x1b20]
and edx, 1
mov eax, dword [ecx + 0x1b24]
and eax, 0
mov dword [ebp - 0x7e4], edx
mov dword [ebp - 0x7e0], eax
mov ecx, dword [ebp - 0x7e4]
or ecx, dword [ebp - 0x7e0]
je 0x1f01b08e
mov edx, dword [ebp - 4]
cmp dword [edx + 0x1b14], 0
je 0x1f01b08e
mov edx, dword [ebp - 4]
add edx, 0xa8
mov ecx, dword [ebp + 8]
call fcn.1f018d60
test eax, eax
je 0x1f01b08e
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x1b20]
mov edx, dword [ecx + 0x1b24]
mov cl, 2
call fcn.1f040950
and eax, 1
and edx, 0
mov dword [ebp - 0x750], eax
call fcn.1f013870
fstp qword [ebp - 0x10]
mov edx, dword [ebp - 4]
add edx, 0x1d68
push edx
push 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x70]
push ecx
mov edx, dword [ebp - 4]
add edx, 0x1b20
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0xc0]
push ecx
lea edx, [ebp - 0x10]
push edx
push 1
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x38]
push ecx
mov edx, dword [ebp - 4]
add edx, 0xa8
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.1f0184f0
add esp, 0x30
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x1a54]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x750], 0
je 0x1f01b082
mov edi, dword [ebp - 4]
add edi, 0x74
mov ecx, 0xc
mov esi, dword [ebp + 0x10]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x38]
push ecx
mov edx, dword [ebp - 4]
add edx, 0xa8
push edx
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
call fcn.1f018840
jmp 0x1f01b08e
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x34]
mov dword [eax + 0x1a54], ecx
cmp dword [ebp - 0x40], 0
jne 0x1f01b0aa
cmp dword [0x1f083738], 0
jne 0x1f01b0aa
cmp dword [0x1f06c38c], 0
je 0x1f01b173
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 0xb6]
cmp eax, 2
je 0x1f01b0cb
cmp dword [0x1f06c38c], 0
jne 0x1f01b0cb
cmp dword [0x1f083738], 0
je 0x1f01b0ef
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x1b74], 0
je 0x1f01b0e3
mov dword [ebp - 0x754], 2
jmp 0x1f01b0ed
mov dword [ebp - 0x754], 3
jmp 0x1f01b0f9
mov dword [ebp - 0x754], 2
mov edx, dword [ebp - 4]
add edx, 0xa8
mov ecx, dword [ebp + 8]
call fcn.1f018d50
test eax, eax
je 0x1f01b173
mov edx, dword [ebp - 0x24]
push edx
push 0xffffffffffffffff
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x74
push ecx
mov edx, dword [ebp - 4]
add edx, 0x74
push edx
mov eax, dword [ebp - 4]
add eax, 0x74
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x70]
push edx
mov eax, dword [ebp - 4]
add eax, 0x1b20
push eax
mov ecx, dword [ebp - 0x754]
push ecx
mov edx, dword [ebp - 0xc0]
push edx
push 0
sub esp, 8
fldz
fstp qword [esp]
push 0
mov eax, dword [ebp - 4]
add eax, 0xa8
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.1f023260
add esp, 0x44
lea edx, [ebp - 0xbc]
push edx
mov eax, dword [ebp - 0x28]
push eax
call fcn.1f0194a0
add esp, 8
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x98], 0
jne 0x1f01b2f0
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 0xb6]
cmp eax, 2
je 0x1f01b2f0
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0xb6]
cmp edx, 1
je 0x1f01b2f0
cmp dword [0x1f083738], 0
jne 0x1f01b2f0
cmp dword [0x1f06c38c], 0
jne 0x1f01b2f0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x1b20]
mov edx, dword [ecx + 0x1b24]
mov cl, 1
call fcn.1f040950
and eax, 1
and edx, 0
mov dword [ebp - 0x7ec], eax
mov dword [ebp - 0x7e8], edx
mov edx, dword [ebp - 0x7ec]
or edx, dword [ebp - 0x7e8]
jne 0x1f01b2f0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x1b20]
mov edx, dword [ecx + 0x1b24]
mov cl, 4
call fcn.1f040950
and eax, 1
and edx, 0
mov dword [ebp - 0x7f4], eax
mov dword [ebp - 0x7f0], edx
mov edx, dword [ebp - 0x7f4]
or edx, dword [ebp - 0x7f0]
jne 0x1f01b2f0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x1b20]
mov edx, dword [ecx + 0x1b24]
mov cl, 5
call fcn.1f040950
and eax, 1
and edx, 0
mov dword [ebp - 0x7fc], eax
mov dword [ebp - 0x7f8], edx
mov edx, dword [ebp - 0x7fc]
or edx, dword [ebp - 0x7f8]
jne 0x1f01b2f0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x1b20]
mov edx, dword [ecx + 0x1b24]
mov cl, 6
call fcn.1f040950
and eax, 1
and edx, 0
mov dword [ebp - 0x804], eax
mov dword [ebp - 0x800], edx
mov edx, dword [ebp - 0x804]
or edx, dword [ebp - 0x800]
jne 0x1f01b2f0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x1b20]
mov edx, dword [ecx + 0x1b24]
mov cl, 7
call fcn.1f040950
and eax, 1
and edx, 0
mov dword [ebp - 0x80c], eax
mov dword [ebp - 0x808], edx
mov edx, dword [ebp - 0x80c]
or edx, dword [ebp - 0x808]
je 0x1f01b378
mov dword [ebp - 0x758], 0xa0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1afc]
add ecx, dword [ebp - 0x758]
push ecx
mov edx, dword [ebp - 0x38]
push edx
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
je 0x1f01b331
cmp dword [ebp - 0x758], 0
je 0x1f01b331
mov eax, dword [ebp - 0x758]
shr eax, 1
mov dword [ebp - 0x758], eax
jmp 0x1f01b2fa
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x1afc]
add edx, dword [ebp - 0x758]
push edx
push 0
mov eax, dword [0x1f0837b4]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x1afc]
add eax, dword [ebp - 0x758]
push eax
mov ecx, dword [ebp - 0x38]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x4c]
push eax
call fcn.1f03f7a0
add esp, 0xc
cmp dword [0x1f06c37c], 0
je 0x1f01b3ae
cmp dword [0x1f06c384], 0
je 0x1f01b3a2
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x1b18], 0
jne 0x1f01b3a2
mov edx, dword [ebp + 8]
cmp dword [edx + 0x1b18], 0
je 0x1f01b3ae
mov dword [ebp - 0x810], 1
jmp 0x1f01b3b8
mov dword [ebp - 0x810], 0
mov eax, dword [ebp - 0x810]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x1b1c], 0
cmp dword [ebp - 0xbc], 2
jne 0x1f01b41d
mov edx, dword [ebp - 4]
fld qword [ebp - 0x10]
fstp qword [edx + 0x1d60]
mov edi, dword [ebp - 4]
add edi, 0x1d30
mov ecx, 0xc
mov esi, dword [ebp + 0x10]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x1d68], 0xbaffe3
je 0x1f01b414
mov dword [ebp - 0xbc], 1
jmp 0x1f01b41b
mov dword [ebp - 0x48], 0x1f01da90
jmp 0x1f01b448
cmp dword [ebp - 0xbc], 3
jne 0x1f01b448
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x1d68], 0xbaffe4
je 0x1f01b441
mov dword [ebp - 0xbc], 1
jmp 0x1f01b448
mov dword [ebp - 0x48], 0x1f0138c0
cmp dword [ebp - 0xbc], 1
jne 0x1f01b4b8
mov edx, dword [ebp + 8]
cmp dword [edx + 0x90], 0
je 0x1f01b481
cmp dword [ebp - 0xc4], 0
je 0x1f01b481
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x90]
mov dword [ebp - 0x48], ecx
mov edx, dword [ebp - 4]
mov dword [edx + 0x1b1c], 1
jmp 0x1f01b4b8
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
je 0x1f01b495
mov ecx, dword [ebp + 8]
add ecx, 0x24
mov dword [ebp - 0x48], ecx
jmp 0x1f01b4b8
mov edx, dword [ebp + 8]
cmp dword [edx + 0x9c], 0
je 0x1f01b4ac
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x48], ecx
jmp 0x1f01b4b8
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x8c]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x1b28], 0
je 0x1f01b519
mov edx, dword [ebp + 8]
cmp dword [edx + 4], 0
jne 0x1f01b519
mov eax, dword [ebp + 8]
cmp dword [eax + 0x9c], 0
jne 0x1f01b519
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x54], eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
mov dword [edx + 0x58], eax
push 0
push 0
mov ecx, dword [ebp - 4]
add ecx, 0x54
push ecx
push 0x1f0144f0
push 0x100000
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, dword [ebp - 4]
mov dword [edx + 0x50], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1b74], 0
je 0x1f01b916
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x7b0], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x4c], 0
je 0x1f01b55d
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x4c]
push edx
push 0
mov eax, dword [0x1f0837b4]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c], 0
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x38]
mov cl, byte [eax + 0xb5]
mov byte [ebp - 0x791], cl
mov edx, dword [ebp - 4]
add edx, 0xa8
mov dword [ebp - 0x790], edx
mov eax, dword [ebp - 0x790]
cmp dword [eax], 0
je 0x1f01b639
mov ecx, dword [ebp - 0x790]
add ecx, 8
mov dword [ebp - 0x78c], ecx
movzx edx, byte [ebp - 0x791]
imul edx, edx, 0xa4
add edx, dword [ebp - 0x78c]
mov dword [ebp - 0x788], edx
jmp 0x1f01b5c8
mov eax, dword [ebp - 0x78c]
add eax, 0xa4
mov dword [ebp - 0x78c], eax
mov ecx, dword [ebp - 0x78c]
cmp ecx, dword [ebp - 0x788]
jae 0x1f01b62d
mov edx, dword [ebp - 0x78c]
mov dword [edx + 8], 0
mov eax, dword [ebp - 0x78c]
mov dword [eax + 0xc], 0
mov ecx, dword [ebp - 0x78c]
cmp dword [ecx + 0x90], 0
je 0x1f01b62b
mov edx, dword [ebp - 0x78c]
mov eax, dword [edx + 0x90]
push eax
push 0
mov ecx, dword [0x1f0837b4]
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edx, dword [ebp - 0x78c]
mov dword [edx + 0x90], 0
jmp 0x1f01b5b7
mov eax, dword [ebp - 0x790]
mov dword [eax], 0
mov ecx, dword [ebp - 0x790]
cmp dword [ecx + 0x1a54], 0
je 0x1f01b674
mov edx, dword [ebp - 0x790]
mov eax, dword [edx + 0x1a54]
push eax
push 0
mov ecx, dword [0x1f0837b4]
push ecx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov edx, dword [ebp - 0x790]
mov dword [edx + 0x1a54], 0
mov eax, dword [ebp + 8]
cmp dword [eax + 0x1b28], 0
je 0x1f01b6b2
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x50], 0
je 0x1f01b6b2
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0xffffffffffffffff
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x50]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x50]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp + 8]
cmp dword [edx + 4], 0
jne 0x1f01b6de
mov eax, dword [ebp + 8]
cmp dword [eax + 0x9c], 0
jne 0x1f01b6de
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xa4]
push edx
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov eax, dword [ebp + 8]
cmp dword [eax + 0xa8], 1
jne 0x1f01b6fa
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xac]
push edx
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [0x1f0837c4]
mov dword [ebp - 0x798], eax
cmp dword [ebp - 0x798], 0x40
jae 0x1f01b722
mov ecx, dword [ebp - 0x798]
push ecx
call section..text
mov dword [ebp - 0x79c], eax
jmp 0x1f01b735
mov edx, dword [ebp - 0x798]
push edx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [ebp - 0x79c], eax
mov eax, dword [ebp - 0x79c]
mov dword [ebp - 0x784], eax
mov ecx, dword [ebp - 0x784]
add ecx, 1
mov dword [ebp - 0x7a4], ecx
mov edx, dword [0x1f0837c4]
mov dword [ebp - 0x7a0], edx
cmp dword [ebp - 0x7a0], 0x40
jae 0x1f01b77a
mov eax, dword [ebp - 0x7a4]
push eax
mov ecx, dword [ebp - 0x7a0]
push ecx
call fcn.1f001021
jmp 0x1f01b78e
mov edx, dword [ebp - 0x7a4]
push edx
mov eax, dword [ebp - 0x7a0]
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
cmp dword [ebp - 0x7b0], 0
je 0x1f01b843
mov ecx, dword [ebp - 0x7b0]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x7b0]
cmp dword [ecx + eax + 0x10], 0
je 0x1f01b843
mov edx, dword [ebp - 0x7b0]
mov eax, dword [edx]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x7b0]
mov eax, dword [edx + ecx + 0x10]
mov ecx, dword [eax]
cmp ecx, dword [ebp - 4]
jne 0x1f01b815
mov edx, dword [ebp - 0x7b0]
mov eax, dword [edx]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x7b0]
mov eax, dword [edx + ecx + 0x10]
push eax
mov ecx, dword [ebp - 0x7b0]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x7b0]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x7b0]
add ecx, dword [edx + 4]
mov edx, dword [ebp - 0x7b0]
mov eax, dword [edx + eax]
mov edx, dword [eax + 0x20]
call edx
jmp 0x1f01b843
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 0x7b0]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0x7b0]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x7b0]
add ecx, dword [edx + 4]
mov edx, dword [ebp - 0x7b0]
mov eax, dword [edx + eax]
mov edx, dword [eax + 0x24]
call edx
mov eax, dword [0x1f0837c4]
mov dword [ebp - 0x7a8], eax
cmp dword [ebp - 0x7a8], 0x40
jae 0x1f01b86c
mov ecx, dword [ebp - 0x784]
push ecx
mov edx, dword [ebp - 0x7a8]
push edx
call fcn.1f001021
jmp 0x1f01b880
mov eax, dword [ebp - 0x784]
push eax
mov ecx, dword [ebp - 0x7a8]
push ecx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov edx, dword [ebp - 0x3c]
push edx
call fcn.1f001055
mov eax, dword [ebp + 8]
add eax, 0xa8
or ecx, 0xffffffff
lock xadd dword [eax], ecx
mov edx, dword [ebp + 8]
cmp dword [edx + 0xa8], 0
jge 0x1f01b8b1
mov eax, dword [ebp + 8]
mov dword [eax + 0xa8], 0
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xa8], 0
jne 0x1f01b914
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xa0]
mov dword [ebp - 0x7ac], eax
cmp dword [ebp - 0x7ac], 0
je 0x1f01b914
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x1b2c], 0
je 0x1f01b8e3
jmp 0x1f01b914
mov edx, dword [ebp + 8]
mov dword [edx + 0xa0], 0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0xb4]
push ecx
mov edx, dword [ebp + 8]
add edx, 8
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xb0]
push ecx
call fcn.1f03f7a0
add esp, 0xc
jmp 0x1f01b986
mov edx, dword [ebp + 8]
cmp dword [edx + 0x1b44], 2
jne 0x1f01b970
mov ecx, dword [0x1f08371c]
call fcn.1f0276e0
test eax, eax
jne 0x1f01b965
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
jne 0x1f01b963
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x9c], 0
jne 0x1f01b963
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0xc8]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
jmp 0x1f01b96e
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0x1f01d920
jmp 0x1f01b979
mov edx, dword [ebp + 0xc]
mov dword [edx], 0x1f01d920
mov eax, dword [ebp - 4]
add eax, 0x68
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea ecx, [ebp - 0xb8]
push ecx
call fcn.1f01da20
add esp, 4
mov edx, dword [ebp - 0x3c]
push edx
call fcn.1f001055
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
jne 0x1f01b9b3
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x9c], 0
je 0x1f01b9bc
mov edx, dword [ebp - 0x24]
mov dword [edx], 0
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x48]
mov dword [eax], ecx
mov eax, dword [ebp - 0xbc]
pop edi
pop esi
mov esp, ebp
pop ebp
ret