Function at 0x421550
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Check os version
Create process on windows
Terminate process

Disassembly:
push 0xffffffffffffffff
push 0x457e1c
mov eax, dword fs:[0]
push eax
sub esp, 0x1d8
mov eax, dword [0x467334]
xor eax, esp
mov dword [esp + 0x1d0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x467334]
xor eax, esp
push eax
lea eax, [esp + 0x1ec]
mov dword fs:[0], eax
mov eax, dword [esp + 0x1fc]
mov dword [esp + 0x14], eax
add eax, 0x2d8
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov dword [esp + 0x24], eax
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x422407
mov ebp, 2
cmp dword [0x468ebc], ebp
jne 0x4216cc
push ebp
lea ecx, [esp + 0x50]
push ecx
sub esp, 0x1c
mov esi, esp
mov dword [esi + 0x18], 0xf
lea edi, [esi + 4]
mov dword [esi + 0x14], ebx
mov byte [edi], bl
mov eax, dword [esi + 0x18]
mov dword [esp + 0x50], esp
cmp eax, 0x10
jb 0x4215ff
mov ecx, dword [edi]
jmp 0x421601
mov ecx, edi
cmp ecx, 0x45c688
ja 0x42163b
cmp eax, 0x10
jb 0x421612
mov ecx, dword [edi]
jmp 0x421614
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x45c688
jbe 0x42163b
cmp eax, 0x10
jb 0x421628
mov edi, dword [edi]
push ebp
mov eax, 0x45c688
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402ea0
jmp 0x421677
cmp eax, ebp
jae 0x42164b
mov ecx, dword [esi + 0x14]
push ecx
push ebp
mov ecx, esi
call fcn.00403800
mov ecx, dword [esi + 0x18]
cmp ecx, 0x10
jb 0x421657
mov eax, dword [edi]
jmp 0x421659
mov eax, edi
push ebp
push 0x45c688
push ecx
push eax
call fcn.0043c85e
add esp, 0x10
cmp dword [esi + 0x18], 0x10
mov dword [esi + 0x14], ebp
jb 0x421674
mov edi, dword [edi]
mov byte [edi + 2], bl
lea esi, [esp + 0x100]
call fcn.00401900
mov dword [esp + 0x1fc], 0
mov ecx, eax
mov dword [esp + 0x30], 1
call fcn.00401b50
cmp dword [eax + 0x18], 0x10
mov ebx, 3
jb 0x4216ad
mov eax, dword [eax + 4]
jmp 0x4216b0
add eax, 4
mov edx, dword [0x468ec0]
push eax
mov eax, dword [edx + 4]
push eax
call fcn.0043d41e
add esp, 0xc
mov byte [esp + 0x1b], 1
test eax, eax
je 0x4216d1
mov byte [esp + 0x1b], 0
mov ebp, pe_nt_image_headers32
test bl, 2
je 0x421706
and ebx, 0xfffffffd
cmp dword [esp + 0x64], ebp
jb 0x4216f1
mov ecx, dword [esp + 0x50]
push ecx
call fcn.0043c853
add esp, 4
mov dword [esp + 0x64], 0xf
mov dword [esp + 0x60], 0
mov byte [esp + 0x50], 0
mov dword [esp + 0x1f4], 0xffffffff
test bl, 1
je 0x421722
lea esi, [esp + 0xdc]
call fcn.00429050
cmp byte [esp + 0x1b], 0
jne 0x422082
xor ebx, ebx
push ebx
push 0x100
lea edx, [esp + 0x54]
push edx
sub esp, 0x1c
mov esi, esp
mov dword [esi + 0x18], 0xf
lea edi, [esi + 4]
mov dword [esi + 0x14], ebx
mov byte [edi], bl
mov eax, dword [esi + 0x18]
mov dword [esp + 0x54], esp
cmp eax, ebp
jb 0x42175d
mov ecx, dword [edi]
jmp 0x42175f
mov ecx, edi
cmp ecx, str.xIB
ja 0x421798
cmp eax, ebp
jb 0x42176f
mov ecx, dword [edi]
jmp 0x421771
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, str.xIB
jbe 0x421798
cmp eax, ebp
jb 0x421784
mov edi, dword [edi]
push 0x14
mov eax, str.xIB
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402ea0
jmp 0x4217da
cmp eax, 0x14
jae 0x4217aa
mov ecx, dword [esi + 0x14]
push ecx
push 0x14
mov ecx, esi
call fcn.00403800
mov ecx, dword [esi + 0x18]
cmp ecx, ebp
jb 0x4217b5
mov eax, dword [edi]
jmp 0x4217b7
mov eax, edi
push 0x14
push str.xIB
push ecx
push eax
call fcn.0043c85e
add esp, 0x10
mov dword [esi + 0x14], 0x14
cmp dword [esi + 0x18], ebp
jb 0x4217d6
mov edi, dword [edi]
mov byte [edi + 0x14], 0
lea esi, [esp + 0x104]
call fcn.00401900
mov dword [esp + 0x200], 1
call fcn.004019c0
mov byte [esp + 0x1fc], 2
cmp dword [eax + 0x18], ebp
jb 0x421808
mov eax, dword [eax + 4]
jmp 0x42180b
add eax, 4
push eax
lea edx, [esp + 0x28]
push edx
call fcn.0040f810
mov edi, dword [esp + 0x18]
add edi, 0x244
push eax
mov byte [esp + 0x1fc], 3
mov dword [esp + 0x34], edi
call fcn.0042f150
movzx edi, al
add esp, 8
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x2c], edi
mov byte [esp + 0x1f8], 2
call fcn.0040f900
cmp dword [esp + 0x64], ebp
jb 0x421861
mov ecx, dword [esp + 0x50]
push ecx
call fcn.0043c853
add esp, 4
lea esi, [esp + 0xdc]
mov dword [esp + 0x64], 0xf
mov dword [esp + 0x60], ebx
mov byte [esp + 0x50], 0
call fcn.00429050
mov dword [esp + 0x1c4], 0xf
mov dword [esp + 0x1c0], ebx
mov byte [esp + 0x1b0], 0
mov dword [esp + 0x1f4], 4
cmp edi, ebx
je 0x421b85
push ebx
lea edx, [esp + 0x34]
push edx
sub esp, 0x1c
mov esi, esp
mov dword [esi + 0x18], 0xf
lea edi, [esi + 4]
mov dword [esi + 0x14], ebx
mov byte [edi], 0
mov eax, dword [esi + 0x18]
mov dword [esp + 0x40], esp
cmp eax, ebp
jb 0x4218d5
mov ecx, dword [edi]
jmp 0x4218d7
mov ecx, edi
cmp ecx, 0x45c6a4
ja 0x421910
cmp eax, ebp
jb 0x4218e7
mov ecx, dword [edi]
jmp 0x4218e9
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x45c6a4
jbe 0x421910
cmp eax, ebp
jb 0x4218fc
mov edi, dword [edi]
push 0xa
mov eax, 0x45c6a4
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402ea0
jmp 0x421952
cmp eax, 0xa
jae 0x421922
mov ecx, dword [esi + 0x14]
push ecx
push 0xa
mov ecx, esi
call fcn.00403800
mov ecx, dword [esi + 0x18]
cmp ecx, ebp
jb 0x42192d
mov eax, dword [edi]
jmp 0x42192f
mov eax, edi
push 0xa
push 0x45c6a4
push ecx
push eax
call fcn.0043c85e
add esp, 0x10
mov dword [esi + 0x14], 0xa
cmp dword [esi + 0x18], ebp
jb 0x42194e
mov edi, dword [edi]
mov byte [edi + 0xa], 0
lea esi, [esp + 0x158]
call fcn.00401900
mov ecx, eax
mov byte [esp + 0x1fc], 5
call fcn.00401b50
mov byte [esp + 0x1f8], 6
cmp dword [eax + 0x18], ebp
jb 0x42197f
mov eax, dword [eax + 4]
jmp 0x421982
add eax, 4
push eax
lea ecx, [esp + 0x70]
call fcn.00402c00
push eax
push 0x100
lea edx, [esp + 0x1d4]
push edx
sub esp, 0x1c
mov esi, esp
mov byte [esp + 0x220], 7
mov dword [esi + 0x18], 0xf
lea edi, [esi + 4]
mov dword [esi + 0x14], ebx
mov byte [edi], 0
mov eax, dword [esi + 0x18]
mov dword [esp + 0x48], esp
cmp eax, ebp
jb 0x4219c6
mov ecx, dword [edi]
jmp 0x4219c8
mov ecx, edi
cmp ecx, str.GO
ja 0x421a01
cmp eax, ebp
jb 0x4219d8
mov ecx, dword [edi]
jmp 0x4219da
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, str.GO
jbe 0x421a01
cmp eax, ebp
jb 0x4219ed
mov edi, dword [edi]
push 0xc
mov eax, str.GO
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402ea0
jmp 0x421a43
cmp eax, 0xc
jae 0x421a13
mov ecx, dword [esi + 0x14]
push ecx
push 0xc
mov ecx, esi
call fcn.00403800
mov ecx, dword [esi + 0x18]
cmp ecx, ebp
jb 0x421a1e
mov eax, dword [edi]
jmp 0x421a20
mov eax, edi
push 0xc
push str.GO
push ecx
push eax
call fcn.0043c85e
add esp, 0x10
mov dword [esi + 0x14], 0xc
cmp dword [esi + 0x18], ebp
jb 0x421a3f
mov edi, dword [edi]
mov byte [edi + 0xc], 0
lea esi, [esp + 0x108]
call fcn.00401900
push eax
mov byte [esp + 0x208], 8
call fcn.00401c70
mov bl, 9
mov byte [esp + 0x200], bl
cmp dword [eax + 0x18], ebp
jb 0x421a70
mov eax, dword [eax + 4]
jmp 0x421a73
add eax, 4
push eax
lea edx, [esp + 0x1a0]
push edx
call fcn.0040f810
mov esi, dword [esp + 0x34]
push eax
lea edi, [esp + 0x58]
mov byte [esp + 0x200], 0xa
call fcn.0042f1f0
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x200], 0xb
call fcn.00402ea0
cmp dword [esp + 0x64], ebp
jb 0x421ac6
mov eax, dword [esp + 0x50]
push eax
call fcn.0043c853
add esp, 4
lea ecx, [esp + 0x190]
mov edi, 0xf
xor esi, esi
push ecx
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], esi
mov byte [esp + 0x54], 0
mov byte [esp + 0x1f8], bl
call fcn.0040f900
cmp dword [esp + 0x1e0], ebp
jb 0x421b07
mov edx, dword [esp + 0x1cc]
push edx
call fcn.0043c853
add esp, 4
mov dword [esp + 0x1dc], esi
lea esi, [esp + 0xdc]
mov dword [esp + 0x1e0], edi
mov byte [esp + 0x1cc], 0
call fcn.00429050
cmp dword [esp + 0x80], ebp
jb 0x421b3f
mov eax, dword [esp + 0x6c]
push eax
call fcn.0043c853
add esp, 4
xor esi, esi
mov dword [esp + 0x80], edi
mov dword [esp + 0x7c], esi
mov byte [esp + 0x6c], 0
cmp dword [esp + 0x48], ebp
jb 0x421b64
mov ecx, dword [esp + 0x34]
push ecx
call fcn.0043c853
add esp, 4
mov dword [esp + 0x44], esi
lea esi, [esp + 0x134]
mov dword [esp + 0x48], edi
mov byte [esp + 0x34], 0
mov byte [esp + 0x1f4], 4
call fcn.00429050
mov ebx, dword [esp + 0x24]
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
xor ebp, ebp
add eax, edx
je 0x421f2e
mov esi, ebx
push ebp
mov eax, esi
call fcn.004299e0
cmp dword [eax + 0x74], 0xffffffff
je 0x421efa
call fcn.00431ed0
test eax, eax
je 0x421bcc
call fcn.00418a50
mov eax, dword [esp + 0x14]
lea ebx, [eax + 0x2c0]
push ebp
add eax, 0x2d8
call fcn.004299e0
mov eax, dword [eax + 0x74]
mov ecx, ebx
call fcn.004298c0
add eax, 0x1c
cmp dword [eax + 0x14], 0
je 0x421d61
mov eax, dword [esp + 0x14]
push ebp
add eax, 0x2d8
call fcn.004299e0
mov eax, dword [eax + 0x74]
mov ecx, ebx
call fcn.004298c0
push 0xffffffffffffffff
add eax, 0x1c
push 0
push eax
lea ecx, [esp + 0x19c]
mov dword [esp + 0x1b4], 0xf
mov dword [esp + 0x1b0], 0
mov byte [esp + 0x1a0], 0
call fcn.00402ea0
mov byte [esp + 0x1f4], 0xc
mov eax, dword [esp + 0x1a4]
test eax, eax
je 0x421c93
lea esi, [eax - 1]
cmp eax, esi
ja 0x421c62
call fcn.0043b6d1
cmp dword [esp + 0x1a8], 0x10
mov eax, dword [esp + 0x194]
jae 0x421c7a
lea eax, [esp + 0x194]
cmp byte [esi + eax], 0x5c
je 0x421c93
push 0x5c
mov eax, 1
lea edi, [esp + 0x194]
call fcn.00412820
mov edi, dword [esp + 0x14]
push ebp
lea eax, [edi + 0x2d8]
call fcn.004299e0
add eax, 0x3c
push 0
push eax
or eax, 0xffffffff
lea esi, [esp + 0x198]
call fcn.004031f0
lea eax, [edi + 0x244]
mov esi, pe_nt_image_headers32
cmp dword [eax + 0x18], esi
jb 0x421ccd
mov eax, dword [eax + 4]
jmp 0x421cd0
add eax, 4
mov ecx, dword [esp + 0x194]
cmp dword [esp + 0x1a8], esi
jae 0x421ce7
lea ecx, [esp + 0x194]
push eax
push ecx
call fcn.0043cd92
add esp, 8
test eax, eax
je 0x422032
cmp dword [esp + 0x28], 0
je 0x421d40
mov ecx, dword [esp + 0x1b0]
cmp dword [esp + 0x1c4], esi
jae 0x421d17
lea ecx, [esp + 0x1b0]
mov eax, dword [esp + 0x194]
cmp dword [esp + 0x1a8], esi
jae 0x421d2e
lea eax, [esp + 0x194]
push ecx
push eax
call fcn.0043cd92
add esp, 8
test eax, eax
je 0x422089
mov byte [esp + 0x1f4], 4
cmp dword [esp + 0x1a8], esi
jb 0x421d61
mov ecx, dword [esp + 0x194]
push ecx
call fcn.0043c853
add esp, 4
mov eax, dword [esp + 0x14]
push ebp
add eax, 0x2d8
call fcn.004299e0
mov eax, dword [eax + 0x74]
mov ecx, ebx
call fcn.004298c0
cmp dword [eax + 0x14], 0
je 0x421efa
mov edi, dword [esp + 0x14]
push ebp
lea eax, [edi + 0x2d8]
call fcn.004299e0
mov eax, dword [eax + 0x74]
mov ecx, ebx
call fcn.004298c0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x19c]
mov dword [esp + 0x1b4], 0xf
mov dword [esp + 0x1b0], 0
mov byte [esp + 0x1a0], 0
call fcn.00402ea0
mov byte [esp + 0x1f4], 0xd
mov eax, dword [esp + 0x1a4]
test eax, eax
je 0x421e27
lea esi, [eax - 1]
cmp eax, esi
ja 0x421dec
call fcn.0043b6d1
mov eax, dword [esp + 0x194]
mov ebx, pe_nt_image_headers32
cmp dword [esp + 0x1a8], ebx
jae 0x421e08
lea eax, [esp + 0x194]
cmp byte [eax + esi], 0x5c
je 0x421e2c
push 0x5c
mov eax, 1
lea edi, [esp + 0x194]
call fcn.00412820
mov edi, dword [esp + 0x14]
jmp 0x421e2c
mov ebx, pe_nt_image_headers32
call fcn.004178d0
test eax, eax
je 0x421e3f
call fcn.00439810
call fcn.004399b0
push ebp
lea eax, [edi + 0x2d8]
call fcn.004299e0
add eax, 0x3c
push 0
push eax
or eax, 0xffffffff
lea esi, [esp + 0x198]
call fcn.004031f0
cmp dword [edi + 0x25c], ebx
lea eax, [edi + 0x244]
jb 0x421e73
mov eax, dword [eax + 4]
jmp 0x421e76
add eax, 4
mov ecx, dword [esp + 0x194]
cmp dword [esp + 0x1a8], ebx
jae 0x421e8d
lea ecx, [esp + 0x194]
push eax
push ecx
call fcn.0043cd92
add esp, 8
test eax, eax
je 0x4220a8
cmp dword [esp + 0x28], 0
je 0x421ee6
mov ecx, dword [esp + 0x1b0]
cmp dword [esp + 0x1c4], ebx
jae 0x421ebd
lea ecx, [esp + 0x1b0]
mov eax, dword [esp + 0x194]
cmp dword [esp + 0x1a8], ebx
jae 0x421ed4
lea eax, [esp + 0x194]
push ecx
push eax
call fcn.0043cd92
add esp, 8
test eax, eax
je 0x422089
lea ecx, [esp + 0x190]
mov byte [esp + 0x1f4], 4
call fcn.00402c70
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x2e8]
sub ecx, dword [esi + 0x2e4]
add esi, 0x2d8
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
inc ebp
add eax, edx
cmp ebp, eax
jb 0x421bac
mov ebx, esi
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
xor ebp, ebp
add eax, edx
je 0x4223ed
push ebp
mov eax, ebx
call fcn.004299e0
add eax, 0x58
cmp dword [eax + 0x14], 0
je 0x4223cb
push ebp
mov eax, ebx
call fcn.004299e0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 0xffffffffffffffff
add eax, 0x58
push 0
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], 0
push eax
mov byte [ecx + 4], 0
call fcn.00402ea0
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0041b890
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push 0
shr esi, 0x18
call fcn.0043cb47
imul eax, eax, 0x63
add esp, 4
cmp esi, eax
jbe 0x421fcf
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoA]
call fcn.00419cc0
test edi, edi
jl 0x4223cb
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x17c]
xor edi, edi
cmp eax, edi
je 0x42201a
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, edi
je 0x422436
mov dword [esi + 0x17c], edi
call fcn.00417b40
test eax, eax
je 0x42200f
call fcn.00418ac0
call fcn.00418ac0
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [esi + 0x198], 0x10
jb 0x4220ff
mov eax, dword [esi + 0x184]
jmp 0x422105
cmp dword [esp + 0x1a8], esi
jb 0x42204b
mov ecx, dword [esp + 0x194]
push ecx
call fcn.0043c853
add esp, 4
mov dword [esp + 0x1a8], 0xf
mov dword [esp + 0x1a4], 0
mov byte [esp + 0x194], 0
cmp dword [esp + 0x1c4], esi
jb 0x422082
mov edx, dword [esp + 0x1b0]
push edx
call fcn.0043c853
add esp, 4
xor eax, eax
jmp 0x42240c
lea ecx, [esp + 0x190]
call fcn.00402c70
lea ecx, [esp + 0x1ac]
call fcn.00402c70
xor eax, eax
jmp 0x42240c
cmp dword [esp + 0x1a8], ebx
jb 0x4220c1
mov eax, dword [esp + 0x194]
push eax
call fcn.0043c853
add esp, 4
mov dword [esp + 0x1a8], 0xf
mov dword [esp + 0x1a4], 0
mov byte [esp + 0x194], 0
cmp dword [esp + 0x1c4], ebx
jb 0x422082
mov ecx, dword [esp + 0x1b0]
push ecx
call fcn.0043c853
add esp, 4
xor eax, eax
jmp 0x42240c
lea eax, [esi + 0x184]
push eax
push edi
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
mov dword [esi + 0x17c], eax
cmp eax, edi
jne 0x42257b
push 0x40
xor eax, eax
lea edx, [esp + 0x13c]
push edi
push edx
mov dword [esp + 0x19c], edi
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x140], edi
call fcn.00444d20
xor eax, eax
add esp, 0xc
mov dword [esp + 0x160], 1
mov word [esp + 0x164], ax
call fcn.004179a0
test eax, eax
je 0x42217b
call fcn.00418af0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 3
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], 0
push 0x45c710
lea edi, [esp + 0x54]
mov byte [ecx + 4], 0
call fcn.004033f0
lea esi, [esp + 0xf8]
call fcn.00401900
mov edx, edi
mov ecx, eax
mov byte [esp + 0x1f4], 0x12
call fcn.00401a70
mov byte [esp + 0x1f4], 0x13
cmp dword [eax + 0x18], 0x10
jb 0x4221d6
mov edi, dword [eax + 4]
jmp 0x4221d9
lea edi, [eax + 4]
push ebp
mov eax, ebx
call fcn.004299e0
add eax, 0x58
push eax
lea esi, [esp + 0x1cc]
call fcn.00405a10
add esp, 4
cmp dword [esp + 0x48], 0x10
jb 0x422208
mov ecx, dword [esp + 0x34]
push ecx
call fcn.0043c853
add esp, 4
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x44], 0
mov byte [esp + 0x34], 0
lea esi, [esp + 0xdc]
call fcn.00429050
mov eax, dword [esp + 0x1cc]
mov edi, pe_nt_image_headers32
cmp dword [esp + 0x1e0], edi
jae 0x422245
lea eax, [esp + 0x1cc]
lea edx, [esp + 0x190]
push edx
lea ecx, [esp + 0x138]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
mov edx, dword [esp + 0x190]
push 0x2710
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov esi, eax
call fcn.00417960
mov dword [esp + 0x1f4], 0x16
mov eax, dword [esp + 0x190]
cmp esi, 0x102
jne 0x422627
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call esi
call fcn.00406870
test eax, eax
je 0x4222c1
call fcn.00418c90
call fcn.00418740
call fcn.00417b10
test eax, eax
je 0x4222cf
call fcn.00439810
mov ecx, dword [esp + 0x194]
push ecx
call esi
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [esp + 0x14]
call fcn.0041c300
mov eax, dword [esp + 0x1cc]
cmp dword [esp + 0x1e0], edi
jae 0x422304
lea eax, [esp + 0x1cc]
push eax
lea edx, [esp + 0x6c]
push edx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x40], esp
push 0x22
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], 0
push 0x45c744
mov byte [ecx + 4], 0
call fcn.004033f0
lea esi, [esp + 0xa8]
call fcn.00401900
push eax
mov byte [esp + 0x200], 0x1b
call fcn.00401c70
mov byte [esp + 0x1f8], 0x1c
cmp dword [eax + 0x18], edi
jb 0x42235d
mov eax, dword [eax + 4]
jmp 0x422360
add eax, 4
push eax
mov eax, dword [esp + 0x1c]
push 1
push eax
call fcn.0041c440
add esp, 0x10
cmp dword [esp + 0x80], edi
jb 0x422386
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.0043c853
add esp, 4
lea esi, [esp + 0x84]
mov dword [esp + 0x80], 0xf
mov dword [esp + 0x7c], 0
mov byte [esp + 0x6c], 0
call fcn.00429050
mov byte [esp + 0x1f4], 4
cmp dword [esp + 0x1e0], edi
jb 0x4223cb
mov edx, dword [esp + 0x1cc]
push edx
call fcn.0043c853
add esp, 4
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
inc ebp
add eax, edx
cmp ebp, eax
jb 0x421f4f
cmp dword [esp + 0x1c4], 0x10
jb 0x422407
mov edx, dword [esp + 0x1b0]
push edx
call fcn.0043c853
add esp, 4
mov eax, 0x80004005
mov ecx, dword [esp + 0x1ec]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1d0]
xor ecx, esp
call fcn.0043c2d9
add esp, 0x1e4
ret 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
sub esp, 0x1c
mov esi, esp
mov dword [esi + 0x18], 0xf
lea edi, [esi + 4]
mov dword [esi + 0x14], 0
mov byte [edi], 0
mov eax, dword [esi + 0x18]
mov ebp, pe_nt_image_headers32
lea ebx, [esp + 0x50]
mov dword [esp + 0x3c], esp
cmp eax, ebp
jb 0x42246e
mov ecx, dword [edi]
jmp 0x422470
mov ecx, edi
cmp ecx, 0x45c6c0
ja 0x4224a9
cmp eax, ebp
jb 0x422480
mov ecx, dword [edi]
jmp 0x422482
mov ecx, edi
mov edx, dword [esi + 0x14]
add edx, ecx
cmp edx, 0x45c6c0
jbe 0x4224a9
cmp eax, ebp
jb 0x422495
mov edi, dword [edi]
push 0x26
mov eax, 0x45c6c0
sub eax, edi
push eax
push esi
mov ecx, esi
call fcn.00402ea0
jmp 0x4224eb
cmp eax, 0x26
jae 0x4224bb
mov ecx, dword [esi + 0x14]
push ecx
push 0x26
mov ecx, esi
call fcn.00403800
mov ecx, dword [esi + 0x18]
cmp ecx, ebp
jb 0x4224c6
mov eax, dword [edi]
jmp 0x4224c8
mov eax, edi
push 0x26
push 0x45c6c0
push ecx
push eax
call fcn.0043c85e
add esp, 0x10
mov dword [esi + 0x14], 0x26
cmp dword [esi + 0x18], ebp
jb 0x4224e7
mov edi, dword [edi]
mov byte [edi + 0x26], 0
lea esi, [esp + 0xa4]
call fcn.00401900
mov edx, ebx
mov ecx, eax
mov byte [esp + 0x1f8], 0xe
call fcn.00401a70
mov byte [esp + 0x1f8], 0xf
cmp dword [eax + 0x18], ebp
jb 0x42251a
mov eax, dword [eax + 4]
jmp 0x42251d
add eax, 4
mov edx, dword [esp + 0x18]
push eax
push 1
push edx
call fcn.0041c440
add esp, 0x10
cmp dword [esp + 0x48], ebp
jb 0x422540
mov eax, dword [esp + 0x34]
push eax
call fcn.0043c853
add esp, 4
lea esi, [esp + 0x84]
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x44], 0
mov byte [esp + 0x34], 0
call fcn.00429050
cmp dword [esp + 0x1c4], ebp
jb 0x422407
mov ecx, dword [esp + 0x1b0]
push ecx
jmp 0x4223ff
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea edx, [esp + 0x34]
push edx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x40], esp
xor ebx, ebx
push 0x25
mov ebp, 0xf
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], ebx
push 0x45c6e8
mov byte [ecx + 4], bl
call fcn.004033f0
lea esi, [esp + 0xa8]
call fcn.00401900
mov byte [esp + 0x1fc], pe_nt_image_headers32
call fcn.004019c0
mov edi, pe_nt_image_headers32
mov byte [esp + 0x1f8], 0x11
cmp dword [eax + 0x18], edi
jb 0x4225dc
mov eax, dword [eax + 4]
jmp 0x4225df
add eax, 4
push eax
mov eax, dword [esp + 0x1c]
push 1
push eax
call fcn.0041c440
add esp, 0x10
cmp dword [esp + 0x48], edi
jb 0x422602
mov ecx, dword [esp + 0x34]
push ecx
call fcn.0043c853
add esp, 4
lea esi, [esp + 0x84]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x44], ebx
mov byte [esp + 0x34], 0
call fcn.00429050
cmp dword [esp + 0x1c4], edi
jmp 0x4223f5
xor ebp, ebp
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ecx, dword [esp + 0x190]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call ebx
mov edx, dword [esp + 0x194]
push edx
call ebx
push esi
lea eax, [esp + 0x6c]
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x40], esp
push 0x2f
mov ebx, 0xf
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], ebp
push 0x45c714
mov byte [ecx + 4], 0
call fcn.004033f0
lea esi, [esp + 0xa8]
call fcn.00401900
mov byte [esp + 0x1fc], 0x19
call fcn.004019c0
mov byte [esp + 0x1f8], 0x1a
cmp dword [eax + 0x18], edi
jb 0x4226a0
mov eax, dword [eax + 4]
jmp 0x4226a3
add eax, 4
mov ecx, dword [esp + 0x18]
push eax
push 1
push ecx
call fcn.0041c440
add esp, 0x10
cmp dword [esp + 0x80], edi
jb 0x4226c9
mov edx, dword [esp + 0x6c]
push edx
call fcn.0043c853
add esp, 4
lea esi, [esp + 0x84]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x7c], ebp
mov byte [esp + 0x6c], 0
call fcn.00429050
call fcn.00417b40
test eax, eax
je 0x4226f3
call fcn.00418bc0
cmp dword [esp + 0x1e0], edi
jb 0x42270c
mov eax, dword [esp + 0x1cc]
push eax
call fcn.0043c853
add esp, 4
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x1dc], ebp
mov byte [esp + 0x1cc], 0
cmp dword [esp + 0x1c4], edi
jb 0x422407
mov ecx, dword [esp + 0x1b0]
push ecx
jmp 0x4223ff