Function at 0x10021fb0
Capabilities:
Resume thread
Suspend thread

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1ee8
call fcn.1002dc90
mov eax, dword [0x10069700]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov dword [ebp - 0x1ee4], ecx
mov dword [ebp + 0x14], 0
mov dword [ebp + 0x10], 0
mov dword [ebp - 0x114], 0
mov eax, dword [ebp - 0x1ee4]
cmp dword [eax + 0x14], 0
jne 0x10021ffe
mov edi, dword [ebp - 0x1ee4]
call fcn.10021bf0
mov ecx, dword [ebp - 0x1ee4]
mov edx, dword [ecx + 8]
cmp dword [edx + 4], 0
jne 0x1002201f
push 0x45a
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x100226d3
mov eax, dword [ebp + 0x10]
mov dword [0x1006dcc0], eax
mov ecx, dword [ebp + 0x14]
mov dword [0x1006dcc4], ecx
cmp dword [ebp + 0xc], 0
jne 0x100220d5
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
cmp dword [ebp + 8], eax
jne 0x10022083
push 0x2cc
push 0
lea edx, [ebp - 0x1e78]
push edx
call fcn.1002d5e0
add esp, 0xc
mov dword [ebp - 0x1e78], 0x10007
call 0x1002206a
pop eax
mov dword [ebp - 0x1dc0], eax
mov dword [ebp - 0x1dc4], ebp
mov dword [ebp - 0x1db4], esp
xor eax, eax
jne 0x10022045
jmp 0x100220d3
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
push 0x2cc
push 0
lea edx, [ebp - 0x1e78]
push edx
call fcn.1002d5e0
add esp, 0xc
mov dword [ebp - 0x1e78], 0x10007
lea eax, [ebp - 0x1e78]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
jne 0x100220d3
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
xor eax, eax
jmp 0x100226d3
jmp 0x100220e5
mov esi, dword [ebp + 0xc]
mov ecx, 0xb3
lea edi, [ebp - 0x1e78]
rep movsd dword es:[edi], dword [esi]
push 0x10001a50
push 0x10001a50
mov eax, dword [ebp - 0x1ee4]
add eax, 0x30
call fcn.10004a60
call fcn.10004a60
push 0x108
push 0
lea eax, [ebp - 0x110]
push eax
call fcn.1002d5e0
add esp, 0xc
mov dword [ebp - 0x37c], 0x14c
mov ecx, dword [ebp - 0x1dc0]
xor edx, edx
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x10c], edx
mov dword [ebp - 0x104], 3
mov eax, dword [ebp - 0x1dc4]
xor ecx, ecx
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xe4], 3
mov edx, dword [ebp - 0x1db4]
xor eax, eax
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd4], 3
push 0x420
call fcn.10029186
add esp, 4
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jne 0x1002219d
jmp 0x10022693
push 0x420
push 0
mov ecx, dword [ebp - 0x114]
push ecx
call fcn.1002d5e0
add esp, 0xc
mov edx, dword [ebp - 0x114]
mov dword [edx], 0x20
mov eax, dword [ebp - 0x114]
mov dword [eax + 0x18], 0x400
xor ecx, ecx
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0x120], ecx
mov dword [ebp - 0x11c], ecx
mov dword [ebp - 0x130], 0x18
push 0x248
push 0
lea edx, [ebp - 0x378]
push edx
call fcn.1002d5e0
add esp, 0xc
mov dword [ebp - 0x378], 0x248
mov dword [ebp - 0x380], 0
jmp 0x10022237
mov eax, dword [ebp - 0x380]
add eax, 1
mov dword [ebp - 0x380], eax
push 0
mov ecx, dword [ebp - 0x1ee4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0x1c]
push eax
mov ecx, dword [ebp - 0x1ee4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0x14]
push eax
push 0x100229d0
lea ecx, [ebp - 0x1e78]
push ecx
lea edx, [ebp - 0x110]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x1ee4]
mov edx, dword [ecx + 0xc]
push edx
mov eax, dword [ebp - 0x37c]
push eax
mov ecx, dword [ebp - 0x1ee4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0x38]
call eax
test eax, eax
jne 0x100222bf
mov ecx, dword [ebp - 0x10c]
push ecx
mov edx, dword [ebp - 0x110]
push edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.StackWalk64
mov eax, dword [ebp - 0x1ee4]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x1ee4]
mov eax, dword [edx + 0x10]
call eax
jmp 0x10022693
mov ecx, dword [ebp - 0x110]
mov dword [ebp - 0x1ba8], ecx
mov edx, dword [ebp - 0x10c]
mov dword [ebp - 0x1ba4], edx
mov byte [ebp - 0x1ba0], 0
mov byte [ebp - 0x17a0], 0
mov byte [ebp - 0x13a0], 0
mov dword [ebp - 0xfa0], 0
mov dword [ebp - 0xf9c], 0
mov dword [ebp - 0xf98], 0
mov byte [ebp - 0xf90], 0
mov dword [ebp - 0xf94], 0
mov byte [ebp - 0x780], 0
mov byte [ebp - 0xb88], 0
mov eax, dword [ebp - 0x110]
cmp eax, dword [ebp - 0x100]
jne 0x10022372
mov ecx, dword [ebp - 0x10c]
cmp ecx, dword [ebp - 0xfc]
jne 0x10022372
mov edx, dword [ebp - 0x10c]
push edx
mov eax, dword [ebp - 0x110]
push eax
push 0
push str.StackWalk64_Endless_Callstack_
mov ecx, dword [ebp - 0x1ee4]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x1ee4]
mov eax, dword [edx + 0x10]
call eax
jmp 0x10022693
mov ecx, dword [ebp - 0x110]
or ecx, dword [ebp - 0x10c]
je 0x1002261c
mov edx, dword [ebp - 0x114]
push edx
lea eax, [ebp - 0xfa0]
push eax
mov ecx, dword [ebp - 0x10c]
push ecx
mov edx, dword [ebp - 0x110]
push edx
mov eax, dword [ebp - 0x1ee4]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 0x1ee4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0x28]
call ecx
test eax, eax
je 0x10022421
mov eax, dword [ebp - 0x114]
add eax, 0x1c
lea ecx, [ebp - 0x1ba0]
call fcn.10022ff0
push 0x1000
push 0x400
lea edx, [ebp - 0x17a0]
push edx
mov eax, dword [ebp - 0x114]
add eax, 0x1c
push eax
mov ecx, dword [ebp - 0x1ee4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0x3c]
call eax
push 0
push 0x400
lea ecx, [ebp - 0x13a0]
push ecx
mov edx, dword [ebp - 0x114]
add edx, 0x1c
push edx
mov eax, dword [ebp - 0x1ee4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0x3c]
call edx
jmp 0x1002244e
mov eax, dword [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x110]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SymGetSymFromAddr64
mov edx, dword [ebp - 0x1ee4]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x1ee4]
mov edx, dword [eax + 0x10]
call edx
mov eax, dword [ebp - 0x1ee4]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x18], 0
je 0x100224e5
lea edx, [ebp - 0x130]
push edx
lea eax, [ebp - 0xf98]
push eax
mov ecx, dword [ebp - 0x10c]
push ecx
mov edx, dword [ebp - 0x110]
push edx
mov eax, dword [ebp - 0x1ee4]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 0x1ee4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0x18]
call ecx
test eax, eax
je 0x100224b8
mov edx, dword [ebp - 0x128]
mov dword [ebp - 0xf94], edx
mov eax, dword [ebp - 0x124]
lea ecx, [ebp - 0xf90]
call fcn.10022ff0
jmp 0x100224e5
mov eax, dword [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x110]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SymGetLineFromAddr64
mov edx, dword [ebp - 0x1ee4]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x1ee4]
mov edx, dword [eax + 0x10]
call edx
lea eax, [ebp - 0x378]
push eax
mov ecx, dword [ebp - 0x10c]
push ecx
mov edx, dword [ebp - 0x110]
push edx
mov eax, dword [ebp - 0x1ee4]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp - 0x1ee4]
mov eax, dword [edx + 8]
push eax
call fcn.100218a0
test eax, eax
je 0x100225ef
mov ecx, dword [ebp - 0x358]
mov dword [ebp - 0x1ee8], ecx
cmp dword [ebp - 0x1ee8], 8
ja case.default.0x10022536
mov edx, dword [ebp - 0x1ee8]
jmp dword [edx*4 + 0x100226e8]
mov dword [ebp - 0xb8c], str._nosymbols_
jmp 0x100225b3
mov dword [ebp - 0xb8c], str.COFF
jmp 0x100225b3
mov dword [ebp - 0xb8c], 0x1005e300
jmp 0x100225b3
mov dword [ebp - 0xb8c], 0x1005e304
jmp 0x100225b3
mov dword [ebp - 0xb8c], str._exported_
jmp 0x100225b3
mov dword [ebp - 0xb8c], str._deferred_
jmp 0x100225b3
mov dword [ebp - 0xb8c], 0x1005e320
jmp 0x100225b3
mov dword [ebp - 0xb8c], 0x1005e32c
jmp 0x100225b3
mov dword [ebp - 0xb8c], str.Virtual
jmp 0x100225b3
mov dword [ebp - 0xb8c], 0
lea eax, [ebp - 0x354]
lea ecx, [ebp - 0xb88]
call fcn.10022ff0
mov eax, dword [ebp - 0x370]
mov dword [ebp - 0x788], eax
mov ecx, dword [ebp - 0x36c]
mov dword [ebp - 0x784], ecx
lea eax, [ebp - 0x234]
lea ecx, [ebp - 0x780]
call fcn.10022ff0
jmp 0x1002261c
mov edx, dword [ebp - 0x10c]
push edx
mov eax, dword [ebp - 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.SymGetModuleInfo64
mov ecx, dword [ebp - 0x1ee4]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x1ee4]
mov eax, dword [edx + 0x10]
call eax
mov dword [ebp - 0x1e7c], 1
cmp dword [ebp - 0x380], 0
jne 0x10022639
mov dword [ebp - 0x1e7c], 0
lea ecx, [ebp - 0x1ba8]
push ecx
mov edx, dword [ebp - 0x1e7c]
push edx
mov eax, dword [ebp - 0x1ee4]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x1ee4]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [ebp - 0x100]
or ecx, dword [ebp - 0xfc]
jne 0x1002268e
lea edx, [ebp - 0x1ba8]
push edx
push 2
mov eax, dword [ebp - 0x1ee4]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x1ee4]
mov eax, dword [edx + 0xc]
call eax
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x10022693
jmp 0x10022228
cmp dword [ebp - 0x114], 0
je 0x100226ab
mov ecx, dword [ebp - 0x114]
push ecx
call fcn.10028891
add esp, 4
cmp dword [ebp + 0xc], 0
jne 0x100226bb
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
push 0x10001a50
mov eax, dword [ebp - 0x1ee4]
add eax, 0x30
call fcn.10004a60
mov eax, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100282cc
mov esp, ebp
pop ebp
ret 0x10