Function at 0x4219f0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov eax, dword [0x43bfc0]
xor eax, ebp
mov dword [ebp - 4], eax
push str._CS_15_1
call dword [sym.imp.VMProtectSDK32.dll_VMProtectBeginUltra]
push 0
call fcn.00424a90
add esp, 4
push eax
call sub.api_ms_win_crt_utility_l1_1_0.dll_srand
add esp, 4
mov eax, 1
imul ecx, eax, 0
movsx edx, byte [ecx + 0x445920]
test edx, edx
jne 0x421a3b
call fcn.00425910
call fcn.00421f60
movzx eax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00421e10
add esp, 8
movzx edx, al
test edx, edx
jne 0x421a5a
xor al, al
jmp 0x421e00
movzx eax, byte [0x43c794]
test eax, eax
jne 0x421a77
mov byte [0x43c794], 1
push 0x445c80
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov ecx, 1
shl ecx, 0
movsx edx, byte [ecx + 0x43c034]
cmp edx, 3
jne 0x421acb
mov eax, 1
shl eax, 0
movsx ecx, byte [eax + 0x43c034]
shl ecx, 4
mov edx, 1
shl edx, 0
mov byte [edx + 0x43c034], cl
mov eax, 1
imul ecx, eax, 0
movsx edx, byte [ecx + 0x43c034]
sar edx, 2
mov eax, 1
imul ecx, eax, 0
mov byte [ecx + 0x43c034], dl
mov edx, dword [ebp + 8]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x1c], 0x4457e0
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x2c]
mov dl, byte [ecx]
mov byte [ebp - 0xd], dl
mov eax, dword [ebp - 0x1c]
mov cl, byte [ebp - 0xd]
mov byte [eax], cl
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
cmp byte [ebp - 0xd], 0
jne 0x421ade
mov cx, word [ebp + 0xc]
mov word [0x4457c6], cx
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x18]
mov dl, byte [ecx]
mov byte [ebp - 0x10], dl
add dword [ebp - 0x18], 1
cmp byte [ebp - 0x10], 0
jne 0x421b20
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x30], ecx
xor edx, edx
mov word [ebp - 8], dx
mov byte [ebp - 6], dl
xor eax, eax
mov word [ebp - 0xc], ax
mov byte [ebp - 0xa], al
mov ecx, dword [ebp + 0x10]
mov dx, word [ecx]
mov word [ebp - 8], dx
push 0x10
push 0
lea eax, [ebp - 8]
push eax
call sub.api_ms_win_crt_convert_l1_1_0.dll_strtol
add esp, 0xc
mov ecx, 1
imul edx, ecx, 0
mov byte [ebp + edx - 0xc], al
mov eax, dword [ebp + 0x10]
mov cx, word [eax + 2]
mov word [ebp - 8], cx
push 0x10
push 0
lea edx, [ebp - 8]
push edx
call sub.api_ms_win_crt_convert_l1_1_0.dll_strtol
add esp, 0xc
mov ecx, 1
shl ecx, 0
mov byte [ebp + ecx - 0xc], al
mov edx, dword [ebp + 0x10]
add edx, dword [ebp - 0x30]
mov ax, word [edx - 2]
mov word [ebp - 8], ax
push 0x10
push 0
lea ecx, [ebp - 8]
push ecx
call sub.api_ms_win_crt_convert_l1_1_0.dll_strtol
add esp, 0xc
mov edx, 1
shl edx, 1
mov byte [ebp + edx - 0xc], al
cmp dword [ebp + 0x1c], 0
je 0x421c11
push 0
push 0
push 0
push 0x430ba0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x421bf9
mov eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x421c0a
push 0
push 0
push 0x430ba0
call sub.api_ms_win_crt_runtime_l1_1_0.dll__beginthread
add esp, 0xc
mov dword [ebp + 0x1c], 0
mov ecx, 1
imul edx, ecx, 0
movzx eax, byte [ebp + edx - 0xc]
mov ecx, 1
shl ecx, 0
movzx edx, byte [ebp + ecx - 0xc]
xor eax, edx
mov ecx, 1
shl ecx, 1
movzx edx, byte [ebp + ecx - 0xc]
xor eax, edx
mov dword [0x445b44], eax
mov eax, dword [0x445b44]
lea ecx, [eax + eax + 2]
mov dword [ebp - 0x34], ecx
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x34]
push edx
mov eax, dword [ebp + 0x10]
push eax
push 0x445a40
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x20], 0
jmp 0x421c86
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x20]
add edx, 2
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x34]
sub eax, 2
cmp dword [ebp - 0x20], eax
jae 0x421cd6
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x34]
add ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x20]
mov ax, word [ecx + edx]
mov word [ebp - 8], ax
push 0x10
push 0
lea ecx, [ebp - 8]
push ecx
call sub.api_ms_win_crt_convert_l1_1_0.dll_strtol
add esp, 0xc
mov edx, dword [ebp - 0x14]
mov byte [edx + 0x445b60], al
mov eax, dword [ebp - 0x14]
movsx ecx, byte [eax + 0x445b60]
xor ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
mov byte [edx + 0x445b60], cl
jmp 0x421c74
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x24], 0x445920
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp - 0x38]
mov al, byte [edx]
mov byte [ebp - 0xe], al
mov ecx, dword [ebp - 0x24]
mov dl, byte [ebp - 0xe]
mov byte [ecx], dl
mov eax, dword [ebp - 0x38]
add eax, 1
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
cmp byte [ebp - 0xe], 0
jne 0x421ce9
cmp dword [ebp + 0x18], 0
je 0x421d95
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x28], 0x4456c0
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x3c]
mov dl, byte [ecx]
mov byte [ebp - 0xf], dl
mov eax, dword [ebp - 0x28]
mov cl, byte [ebp - 0xf]
mov byte [eax], cl
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x28]
add eax, 1
mov dword [ebp - 0x28], eax
cmp byte [ebp - 0xf], 0
jne 0x421d2a
mov byte [0x4457c4], 1
mov ecx, 1
imul edx, ecx, 0
movsx eax, byte [edx + 0x445920]
test eax, eax
jne 0x421d93
push fcn.00425910
call fcn.00422230
add esp, 4
push fcn.00421f60
call fcn.00422230
add esp, 4
push fcn.00430dc0
call fcn.00422230
add esp, 4
jmp 0x421dd6
mov ecx, 1
imul edx, ecx, 0
movsx eax, byte [edx + 0x445920]
test eax, eax
jne 0x421dcf
push fcn.00425910
call fcn.00422230
add esp, 4
push fcn.00421f60
call fcn.00422230
add esp, 4
push fcn.00430dc0
call fcn.00422230
add esp, 4
mov byte [0x4457c4], 0
mov ecx, 1
shl ecx, 2
movzx edx, byte [ecx + 0x445668]
test edx, edx
jne 0x421df8
mov eax, 1
shl eax, 2
mov byte [eax + 0x445668], 8
call dword [sym.imp.VMProtectSDK32.dll_VMProtectEnd]
mov al, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0041d5bd
mov esp, ebp
pop ebp
ret