Function at 0x4184c0
Capabilities:
Create process on windows
Get common file path
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x540
mov esi, esp
mov dword [esi + 0x528], ebp
mov dword [esi + 0x52c], esp
mov dword [esi + 0x538], 0xffffffff
mov dword [esi + 0x534], 0x4224a0
mov dword [esi + 0x90], ecx
lea eax, [esi + 0x530]
mov dword [esi + 0x38], edx
mov ecx, dword fs:[0]
mov dword [esi + 0x530], ecx
mov dword fs:[0], eax
mov al, byte [edx + 0x24]
mov edx, dword [edx + 0x20]
test al, al
mov dword [esi + 0x20], edx
sete cl
test edx, edx
sete dl
and dl, cl
mov byte [esi + 0x88], dl
je 0x41853f
mov dword [esi + 0xfc], 0
jmp 0x418e54
test al, al
mov dword [esi + 0x98], 0
mov dword [esi + 0x9c], 0
jne 0x4187b9
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
test eax, eax
je 0x41aefc
mov edx, eax
mov dword [esi + 0x34], eax
jmp 0x418573
mov edx, dword [esi + 0x1c]
cmp word [edx], 0
jne 0x418591
jmp 0x4187b0
mov eax, dword [esi + 0x14]
cmp word [edx + eax*2 + 2], 0
mov edx, ecx
je 0x4187b0
xor edi, edi
xor ebx, ebx
nop word cs:[eax + eax]
nop
cmp word [edx + ebx*2 + 2], 0
mov eax, edi
lea ebx, [ebx + 1]
lea edi, [edi - 2]
jne 0x4185a0
mov ecx, edx
mov dword [esi + 0x14], ebx
sub ecx, edi
mov edi, ebx
add ecx, 2
cmp ebx, 1
je 0x418580
cmp dword [esi + 0x14], 0
je 0x41ae28
neg eax
mov edi, 2
mov ebx, 0xfffffffc
nop word [eax + eax]
cmp word [edx + edi*2 - 2], 0x3d
je 0x418600
inc edi
add ebx, 0xfffffffe
add eax, 0xfffffffe
jne 0x4185e0
jmp 0x418580
lea eax, [edi - 1]
mov dword [esi + 0x10], edi
add edi, 0xfffffffe
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x538], 0x27
cmp edi, dword [esi + 0x14]
jae 0x41ae43
lea ecx, [esi + 0x40]
mov dword [esi + 0x24], edx
push eax
call fcn.00412c90
add esp, 4
mov edx, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x18]
lea ecx, [esi + 0x5c]
mov eax, edx
sub eax, edi
jb 0x41ae52
mov edx, dword [esi + 0x24]
mov dword [esi + 0x538], 0x28
sub edx, ebx
push eax
call fcn.00412c90
add esp, 4
mov eax, dword [esi + 0x44]
mov ecx, dword [esi + 0x48]
movsd xmm0, qword [esi + 0x5c]
mov ebx, dword [esi + 0x40]
lea edx, [esi + 0xc0]
mov dword [esi + 0x128], eax
mov eax, dword [esi + 0x64]
mov dword [esi + 0x12c], ecx
lea ecx, [esi + 0x134]
test ebx, ebx
movsd qword [ecx - 4], xmm0
mov dword [ecx + 4], eax
lea ecx, [esi + 0x40]
movsd xmm0, qword [esi + 0x128]
movsd xmm1, qword [esi + 0x130]
mov eax, dword [esi + 0x138]
movsd qword [esi + 0xb8], xmm0
movsd qword [esi + 0xc0], xmm1
mov dword [esi + 0xc8], eax
je 0x4187b0
mov eax, dword [edx + 8]
movsd xmm0, qword [edx]
mov edx, dword [esi + 0xbc]
mov edi, dword [esi + 0xb8]
mov dword [esi + 0x28], ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x538], 0x2a
mov dword [esi + 0x30], edx
add edx, ebx
mov dword [esi + 0xac], eax
movsd qword [esi + 0xa4], xmm0
mov dword [esi + 0x2c], edi
mov dword [esi + 0x60], edx
lea edx, [esi + 0x5c]
mov word [esi + 0x64], 0
call fcn.00414720
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0xbc]
movsd xmm0, qword [esi + 0x40]
mov byte [esi + 0x8d], 0
mov dword [esi + 0x538], 0x29
lea edx, [esi + 0x94]
mov dword [esi + 0x128], eax
mov eax, dword [esi + 0xb8]
mov dword [esi + 0x130], ecx
lea ecx, [esi + 0x134]
mov dword [esi + 0x12c], eax
mov eax, dword [esi + 0x48]
movsd qword [ecx], xmm0
mov dword [ecx + 8], eax
lea ecx, [esi + 0xc0]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
lea ecx, [esi + 0x40]
mov dword [esi + 0x64], eax
lea eax, [esi + 0x5c]
movsd qword [esi + 0x5c], xmm0
push eax
lea eax, [esi + 0x128]
push eax
call fcn.0041b860
add esp, 8
mov ecx, dword [esi + 0x40]
test ecx, ecx
je 0x418570
cmp dword [esi + 0x44], 0
je 0x418570
mov edx, 1
call fcn.00404a30
jmp 0x418570
push dword [esi + 0x34]
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 0x20]
xor ebx, ebx
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
test eax, eax
mov dword [esi + 0x14], ecx
mov dword [esi + 0x10], eax
sete bl
cmove edx, eax
add ebx, ebx
jmp 0x4187ea
mov edx, dword [esi + 0x20]
mov dword [esi + 0x14], 0
test edx, edx
je 0x418e28
test ebx, ebx
je 0x418810
cmp ebx, 2
je 0x41adcf
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x24]
jmp 0x418845
xor ecx, ecx
cmp dword [esi + 0x14], 0
mov ebx, 1
je 0x41883b
mov edi, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
nop word cs:[eax + eax]
nop dword [eax]
mov edi, dword [edi + 0x194]
dec eax
jne 0x418830
jmp 0x41883e
mov edi, dword [esi + 0x10]
mov dword [esi + 0x14], 0
movzx eax, word [edi + 0x192]
cmp ecx, eax
mov eax, ecx
jb 0x41887f
nop word cs:[eax + eax]
nop dword [eax]
mov ecx, dword [edi]
test ecx, ecx
je 0x41aca9
movzx eax, word [edi + 0x190]
inc dword [esi + 0x14]
mov edi, ecx
cmp ax, word [ecx + 0x192]
jae 0x418860
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x14]
mov dword [esi + 0x18], ebx
test edx, edx
je 0x4188c0
mov ecx, dword [edi + eax*4 + 0x198]
mov dword [esi + 0x10], ecx
xor ecx, ecx
dec edx
je 0x4188c6
mov ebx, dword [esi + 0x10]
nop
mov ebx, dword [ebx + 0x194]
dec edx
jne 0x4188a0
mov dword [esi + 0x10], ebx
mov ebx, dword [esi + 0x18]
jmp 0x4188c6
lea ecx, [eax + 1]
mov dword [esi + 0x10], edi
mov edx, dword [esi + 0x20]
lea eax, [eax + eax*2]
mov dword [esi + 0x24], ecx
dec edx
cmp dword [edi + eax*4 + 0x10c], 0
je 0x418910
mov ebx, dword [edi + eax*8 + 0xc]
test ebx, ebx
js 0x41ad0b
mov dword [esi + 0x20], edx
mov edx, dword [edi + eax*8 + 4]
mov dword [esi + 0x14], eax
je 0x418970
mov ecx, ebx
mov dword [esi + 0x1c], edx
call fcn.00404a00
mov edx, dword [esi + 0x1c]
test eax, eax
jne 0x418975
jmp 0x41ae0d
mov ecx, dword [esi + 0x98]
mov dword [esi + 0x14], 0
test ecx, ecx
je 0x4187ea
mov dword [esi + 0x20], edx
mov edx, eax
mov eax, dword [edi + eax*8 + 0x10]
mov ebx, ecx
lea ecx, [esi + 0x40]
mov edi, dword [edi + edx*8 + 0x18]
mov edx, dword [esi + 0x94]
mov dword [esi + 0x538], 0x23
mov dword [esi + 0x34], edx
push edi
push eax
mov dword [esi + 0x1c], ebx
push ebx
call fcn.0041cb30
add esp, 0xc
cmp dword [esi + 0x40], 0
je 0x418af9
mov edx, dword [esi + 0x20]
mov ebx, dword [esi + 0x18]
jmp 0x4187ea
mov eax, 1
mov dword [esi + 0x1c], eax
push ebx
push edx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x1c]
mov dword [esi + 0xb8], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0xbc], ebx
mov dword [esi + 0xc0], ebx
xor ebx, ebx
mov edx, dword [edi + eax*8 + 0x18]
mov eax, edx
mov ecx, edx
add eax, edx
setae al
add ecx, edx
jb 0x41ad1f
mov bl, al
add ebx, ebx
test ecx, ecx
js 0x41ad4e
mov eax, dword [esi + 0x14]
mov dword [esi + 0x34], edx
mov dword [esi + 0x1c], ecx
lea eax, [edi + eax*8 + 0x10]
mov edx, dword [eax]
je 0x4189f0
mov dword [esi + 0x84], edx
call fcn.00404a00
mov edx, dword [esi + 0x84]
test eax, eax
jne 0x4189fa
jmp 0x41acf2
mov eax, ebx
test eax, eax
je 0x41acf2
push dword [esi + 0x1c]
push edx
push eax
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0xc0]
movsd xmm0, qword [esi + 0xb8]
mov dword [esi + 0x130], eax
mov eax, dword [esi + 0x34]
movsd qword [esi + 0x128], xmm0
mov dword [esi + 0x134], ebx
mov dword [esi + 0x138], eax
mov dword [esi + 0x13c], eax
mov eax, dword [esi + 0x14]
mov ebx, dword [edi + eax*4 + 0x114]
test ebx, ebx
js 0x41ad33
lea eax, [edi + eax*4 + 0x10c]
mov eax, dword [eax]
je 0x418a80
mov ecx, ebx
mov dword [esi + 0x14], eax
call fcn.00404a00
mov edi, eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x538], 0x24
test edi, edi
jne 0x418a85
jmp 0x41adf5
mov edi, 1
push ebx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [esi + 0xb8]
mov dword [esi + 0xb8], edi
mov dword [esi + 0xbc], ebx
mov dword [esi + 0xc0], ebx
mov byte [esi + 0x83], 0
mov dword [esi + 0x538], 0x24
lea ecx, [esi + 0x5c]
lea edx, [esi + 0x94]
push eax
lea eax, [esi + 0x128]
push eax
call fcn.0041b860
add esp, 8
mov ecx, dword [esi + 0x5c]
mov ebx, dword [esi + 0x18]
test ecx, ecx
je 0x4187e0
cmp dword [esi + 0x60], 0
je 0x4187e0
mov edx, 1
call fcn.00404a30
jmp 0x4187e0
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 0x4c]
mov byte [esi + 0x28], 0
test ecx, ecx
jne 0x418b47
mov dword [esi + 0xb8], 0
mov dword [esi + 0xbc], eax
lea eax, [esi + 0x28]
mov dword [esi + 0xc0], edx
lea ecx, [esi + 0x128]
lea edx, [esi + 0xb8]
push eax
call fcn.0041cc80
add esp, 4
jmp 0x418d05
movzx edx, word [eax + 0x192]
mov eax, dword [eax + edx*4 + 0x194]
dec ecx
jne 0x418b40
movzx ecx, word [eax + 0x192]
mov dword [esi + 0xb8], 0
mov dword [esi + 0xbc], eax
lea eax, [esi + 0x28]
mov dword [esi + 0x538], 0x23
lea edx, [esi + 0xb8]
dec ecx
mov dword [esi + 0xc0], ecx
lea ecx, [esi + 0x128]
push eax
call fcn.0041cc80
add esp, 4
movsd xmm1, qword [esi + 0x138]
mov eax, dword [esi + 0x148]
movsd xmm0, qword [esi + 0x140]
movsd xmm2, qword [esi + 0x128]
mov ecx, dword [esi + 0x150]
mov edx, dword [esi + 0x154]
movsd qword [esi + 0x6c], xmm1
movsd xmm1, qword [esi + 0x130]
mov dword [esi + 0x7c], eax
movsd qword [esi + 0x74], xmm0
movsd qword [esi + 0x5c], xmm2
mov eax, dword [esi + 0x14c]
movsd qword [esi + 0x64], xmm1
movzx edi, word [ecx + 0x192]
cmp edx, edi
jb 0x418c0d
nop dword [eax + eax]
mov edi, dword [ecx]
test edi, edi
je 0x418c0b
movzx edx, word [ecx + 0x190]
inc eax
mov ecx, edi
cmp dx, word [edi + 0x192]
jae 0x418bf0
jmp 0x418c0d
xor ecx, ecx
lea edi, [edx + edx*2]
test eax, eax
movsd xmm0, qword [ecx + edi*8 + 0x14]
mov dword [esi + 0x84], edi
movsd qword [esi + 0xc8], xmm0
movsd xmm0, qword [ecx + edi*8 + 4]
movsd xmm1, qword [ecx + edi*8 + 0xc]
movsd qword [esi + 0xb8], xmm0
movsd xmm0, qword [esi + 0x6c]
movsd qword [esi + 0xc0], xmm1
movsd qword [ecx + edi*8 + 0x14], xmm0
movsd xmm0, qword [esi + 0x5c]
movsd xmm1, qword [esi + 0x64]
movsd qword [ecx + edi*8 + 0xc], xmm1
movsd qword [ecx + edi*8 + 4], xmm0
mov ebx, dword [ecx + edi*4 + 0x114]
lea edi, [esi + 0xd0]
mov dword [edi + 8], ebx
mov ebx, edi
mov edi, dword [esi + 0x84]
movsd xmm0, qword [ecx + edi*4 + 0x10c]
movsd qword [ebx], xmm0
lea ebx, [esi + 0x74]
movsd xmm0, qword [ebx]
movsd qword [ecx + edi*4 + 0x10c], xmm0
mov ebx, dword [ebx + 8]
mov dword [ecx + edi*4 + 0x114], ebx
je 0x418cb9
dec eax
je 0x418cb9
mov ecx, dword [ecx + edx*4 + 0x198]
nop
mov ecx, dword [ecx + 0x194]
dec eax
jne 0x418cb0
movsd xmm1, qword [esi + 0xc8]
mov eax, dword [esi + 0xd8]
movsd xmm0, qword [esi + 0xd0]
movsd xmm2, qword [esi + 0xb8]
movsd qword [esi + 0x138], xmm1
movsd xmm1, qword [esi + 0xc0]
mov dword [esi + 0x148], eax
movsd qword [esi + 0x140], xmm0
movsd qword [esi + 0x128], xmm2
movsd qword [esi + 0x130], xmm1
movsd xmm1, qword [esi + 0x138]
mov eax, dword [esi + 0x148]
movsd xmm0, qword [esi + 0x140]
movsd xmm2, qword [esi + 0x128]
dec dword [esi + 0x9c]
mov ebx, dword [esi + 0x18]
cmp byte [esi + 0x28], 0
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 0x1c]
movsd qword [esi + 0xc8], xmm1
movsd xmm1, qword [esi + 0x130]
mov dword [esi + 0xd8], eax
movsd qword [esi + 0xd0], xmm0
movsd qword [esi + 0xb8], xmm2
movsd qword [esi + 0xc0], xmm1
je 0x418d97
mov edx, dword [esi + 0x34]
test edx, edx
je 0x41ae68
mov eax, dword [ecx + 0x194]
dec edx
mov dword [esi + 0x98], eax
mov dword [esi + 0x94], edx
mov edx, 4
mov dword [eax], 0
call fcn.00404a30
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 0xb8]
test ecx, ecx
je 0x4187ea
mov eax, dword [esi + 0xc4]
mov ebx, dword [esi + 0xd4]
mov edi, dword [esi + 0xc8]
cmp dword [esi + 0xbc], 0
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0xd0]
mov dword [esi + 0x34], ebx
je 0x418ddd
mov edx, 1
mov ebx, eax
call fcn.00404a30
mov edx, dword [esi + 0x20]
mov eax, ebx
test edi, edi
je 0x418dff
cmp dword [esi + 0x1c], 0
je 0x418dff
add edi, edi
je 0x418dff
mov ecx, dword [esi + 0x1c]
mov edx, 2
mov edi, eax
call fcn.00404a30
mov edx, dword [esi + 0x20]
mov eax, edi
mov ebx, dword [esi + 0x18]
test eax, eax
je 0x4187ea
cmp dword [esi + 0x34], 0
je 0x4187ea
mov ecx, eax
mov edx, 1
call fcn.00404a30
mov edx, dword [esi + 0x20]
jmp 0x4187ea
mov eax, dword [esi + 0x9c]
movsd xmm0, qword [esi + 0x94]
mov dl, byte [esi + 0x88]
mov dword [esi + 0x108], eax
movsd qword [esi + 0x100], xmm0
mov dword [esi + 0xfc], 1
test dl, dl
mov dword [esi + 0xc0], 0
mov dword [esi + 0xbc], 0
mov dword [esi + 0xc8], 0
mov dword [esi + 0xc4], 0
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
mov dword [esi + 0xd8], 0
mov dword [esi + 0xd4], 0
mov dword [esi + 0xe0], 0
mov dword [esi + 0xdc], 0
mov dword [esi + 0xe8], 0
mov dword [esi + 0xec], 0
mov dword [esi + 0xf0], 0xffffffff
mov dword [esi + 0xf4], 0xffffffff
mov dword [esi + 0xf8], 0xffffffff
mov dword [esi + 0xb8], 0x44
mov dword [esi + 0xe4], 0x100
je 0x418f09
xor edi, edi
jmp 0x4190b1
mov ecx, 4
call fcn.00404a00
test eax, eax
je 0x41ae8e
mov dword [esi + 0x128], eax
mov dword [esi + 0x12c], 4
mov dword [esi + 0x130], 0
mov dword [esi + 0x538], 5
lea ecx, [esi + 0x128]
mov edx, str.PATHlibrary_std_src_sys_common_thread_info.rs
push 4
call fcn.00416a00
add esp, 4
mov eax, dword [esi + 0x130]
movsd xmm0, qword [esi + 0x128]
lea edx, [esi + 0x128]
mov dword [esi + 0x538], 4
mov dword [esi + 0x30], eax
movsd qword [esi + 0x28], xmm0
mov ecx, dword [esi + 0x28]
add eax, ecx
mov dword [esi + 0x128], ecx
lea ecx, [esi + 0x40]
mov dword [esi + 0x12c], eax
mov word [esi + 0x130], 0
call fcn.00414720
movsd xmm0, qword [esi + 0x28]
mov eax, dword [esi + 0x30]
xor edi, edi
movsd qword [esi + 0x5c], xmm0
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x48]
movsd xmm0, qword [esi + 0x40]
movsd qword [esi + 0x68], xmm0
mov dword [esi + 0x70], eax
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x68]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x104]
test eax, eax
je 0x41907c
mov ecx, dword [esi + 0x100]
mov dword [esi + 0x24], ecx
mov dword [esi + 0x14], eax
movzx eax, word [eax + 0x192]
mov ebx, 0x108
mov edi, 0xffffffff
mov dword [esi + 0x1c], eax
neg eax
mov dword [esi + 0x20], eax
nop word [eax + eax]
mov eax, dword [esi + 0x20]
add eax, edi
cmp eax, 0xffffffff
je 0x419040
push 1
mov eax, dword [esi + 0x14]
push dword [eax + ebx*2 - 0x1f8]
push dword [eax + ebx*2 - 0x200]
push dword [esi + 0x18]
push dword [esi + 0x10]
call dword [sym.imp.KERNEL32.dll_CompareStringOrdinal]
add ebx, 0xc
inc edi
cmp eax, 3
je 0x419000
cmp eax, 1
jne 0x41905e
jmp 0x419043
mov edi, dword [esi + 0x1c]
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x14]
sub ecx, 1
jb 0x41949a
mov eax, dword [eax + edi*4 + 0x194]
mov dword [esi + 0x24], ecx
jmp 0x418fde
cmp eax, 2
jne 0x41ad62
mov eax, dword [esi + 0x14]
mov edi, dword [eax + ebx - 8]
mov eax, dword [eax + ebx]
mov dword [esi + 0x1c], eax
cmp dword [esi + 0x60], 0
jne 0x419082
jmp 0x419093
cmp dword [esi + 0x60], 0
je 0x419093
mov ecx, dword [esi + 0x5c]
test ecx, ecx
je 0x419093
mov edx, 1
call fcn.00404a30
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x4190b1
cmp dword [esi + 0x10], 0
je 0x4190b1
add eax, eax
je 0x4190b1
mov ecx, dword [esi + 0x10]
mov edx, 2
call fcn.00404a30
mov eax, dword [esi + 0x38]
mov ecx, 0x4273e0
mov edx, dword [eax + 8]
test edx, edx
je 0x4193dd
mov dword [esi + 0x18], edi
mov edi, dword [eax]
mov ecx, 0x41d2d0
cmp edx, 4
jb 0x4190f0
cmp dword [edi], 0x5c3f5c5c
mov eax, 0x41d2c0
mov ecx, 0x41d2d0
mov dword [esi + 0x538], 2
cmove ecx, eax
movzx eax, byte [edx + edi - 1]
mov dword [esi + 0x14], edx
mov dword [esi + 0x20], edi
mov byte [esi + 0xf], 1
mov dword [esi + 0x538], 2
push eax
call ecx
add esp, 4
test al, al
mov ecx, 0x4273e0
jne 0x4193dd
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0x20]
xor ecx, ecx
mov edx, 0
cmp edi, 4
jb 0x419197
mov al, byte [edi + ebx - 4]
mov edx, eax
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
cmp dl, 0x2e
jne 0x419195
mov al, byte [ebx + edi - 3]
mov edx, eax
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
cmp dl, 0x65
jne 0x419195
mov al, byte [ebx + edi - 2]
mov edx, eax
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
cmp dl, 0x78
jne 0x419195
mov al, byte [ebx + edi - 1]
mov edx, eax
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, al
cmp dl, 0x65
sete dl
jmp 0x419197
xor edx, edx
lea eax, [ebx + edi]
mov dword [esi + 0x10], eax
nop dword [eax]
cmp edi, ecx
je 0x41921b
movzx eax, byte [ebx + ecx]
cmp al, 0x2f
je 0x4191b1
inc ecx
cmp al, 0x5c
jne 0x4191a0
test dl, dl
je 0x4192dd
test edi, edi
js 0x41af98
mov ecx, edi
call fcn.00404a00
test eax, eax
je 0x41afc5
mov dword [esi + 0x128], eax
mov dword [esi + 0x12c], edi
mov dword [esi + 0x130], 0
mov dword [esi + 0x538], 0x1f
lea ecx, [esi + 0x128]
mov edx, ebx
push edi
call fcn.00416a00
add esp, 4
mov ebx, dword [esi + 0x128]
mov edx, dword [esi + 0x12c]
mov edi, dword [esi + 0x130]
mov ecx, dword [esi + 0x38]
jmp 0x4199fa
mov ecx, ebx
xor ebx, ebx
jmp 0x41923b
xor ebx, ebx
test dx, dx
je 0x4193d8
mov dx, 1
test bx, bx
jne 0x419230
cmp ecx, dword [esi + 0x10]
je 0x419413
movzx eax, byte [ecx]
movzx edi, al
test al, al
js 0x41925e
inc ecx
xor ebx, ebx
mov edx, edi
jmp 0x419232
movzx ebx, byte [ecx + 1]
and edi, 0x1f
and ebx, 0x3f
cmp al, 0xdf
jbe 0x4192a5
mov dword [esi + 0x24], ecx
movzx ecx, byte [ecx + 2]
shl ebx, 6
and ecx, 0x3f
or ecx, ebx
cmp al, 0xf0
mov ebx, ecx
jb 0x4192b7
mov ecx, dword [esi + 0x24]
and edi, 7
shl ebx, 6
shl edi, 0x12
movzx eax, byte [ecx + 3]
add ecx, 4
and eax, 0x3f
or eax, ebx
or edi, eax
cmp edi, 0xffff
jbe 0x419258
jmp 0x4192ca
shl edi, 6
add ecx, 2
or edi, ebx
cmp edi, 0xffff
ja 0x4192ca
jmp 0x419258
mov ecx, dword [esi + 0x24]
shl edi, 0xc
or edi, ebx
add ecx, 3
cmp edi, 0xffff
jbe 0x419258
and edi, 0x3ff
or edi, 0xdc00
mov ebx, edi
jmp 0x419232
test edi, edi
js 0x41afb0
mov ecx, edi
call fcn.00404a00
test eax, eax
je 0x41afe1
mov dword [esi + 0x128], eax
mov dword [esi + 0x12c], edi
mov dword [esi + 0x130], 0
mov dword [esi + 0x538], 0x20
lea ecx, [esi + 0x128]
mov edx, ebx
push edi
call fcn.00416a00
add esp, 4
mov eax, dword [esi + 0x130]
movsd xmm0, qword [esi + 0x128]
mov dword [esi + 0x538], 0x1e
lea ecx, [esi + 0x128]
mov edx, str..exeprogram_not_found
mov dword [esi + 0x64], eax
movsd qword [esi + 0x5c], xmm0
mov dword [esi + 0x130], eax
movsd qword [esi + 0x128], xmm0
push 4
call fcn.00416a00
add esp, 4
mov edx, dword [esi + 0x130]
movsd xmm0, qword [esi + 0x128]
mov byte [esi + 0x3e], 1
mov dword [esi + 0x538], 0x1d
mov dword [esi + 0x64], edx
movsd qword [esi + 0x5c], xmm0
mov dword [esi + 0x18], edx
mov ecx, dword [esi + 0x5c]
mov dword [esi + 0x10], ecx
call fcn.0041d2f0
test al, al
jne 0x419405
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x18]
mov byte [esi + 0x3e], 1
call fcn.00418000
mov ebx, eax
test eax, eax
je 0x419405
cmp edx, 2
jne 0x41944b
movzx ecx, word [ebx]
cmp ecx, 0x2e2e
jne 0x41944b
mov edi, dword [esi + 0x18]
mov edx, 2
jmp 0x419493
mov ecx, 0x4273b4
mov eax, dword [esi + 0x90]
cmp byte [esi + 0x88], 0
mov dword [eax + 8], ecx
mov dword [eax + 4], 2
mov dword [eax], 1
je 0x41aaf8
jmp 0x41ab62
mov ecx, dword [esi + 0x38]
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x18]
jmp 0x4199ed
mov edi, dword [esi + 0x14]
mov edx, dword [esi + 0x20]
cmp edi, 7
ja 0x4194ab
mov ecx, dword [esi + 0x1c]
xor eax, eax
nop word [eax + eax]
cmp byte [edx + eax], 0x2e
je 0x4194e1
inc eax
cmp edi, eax
jne 0x419430
mov dword [esi + 0x34], 0
jmp 0x4194e8
xor edi, edi
mov ecx, ebx
mov dword [esi + 0x14], ebx
nop word cs:[eax + eax]
nop dword [eax]
cmp edx, edi
je 0x4194d2
cmp byte [ecx + edx - 1], 0x2e
lea ebx, [ecx - 1]
mov eax, edi
lea edi, [edi + 1]
mov ecx, ebx
jne 0x419460
mov ecx, edx
sub ecx, edi
mov dword [esi + 0x20], ecx
inc ecx
cmp edx, ecx
jb 0x41b017
cmp edx, edi
jne 0x4199bb
mov edi, dword [esi + 0x18]
mov ebx, dword [esi + 0x14]
xor ecx, ecx
jmp 0x4199c8
xor edi, edi
cmp dword [esi + 0x60], 0
jne 0x419082
jmp 0x419093
mov byte [esi + 0xf], 1
mov dword [esi + 0x538], 2
mov ecx, 0x2e
push edi
call fcn.00408100
add esp, 4
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
jmp 0x4194eb
mov ecx, dword [esi + 0x14]
mov edi, dword [esi + 0x18]
mov eax, edx
xor ebx, ebx
jmp 0x4199c8
mov dword [esi + 0x34], 1
mov eax, dword [esi + 0x18]
test eax, eax
je 0x4195ee
add ecx, eax
mov dword [esi + 0x128], eax
lea edx, [esi + 0x128]
mov byte [esi + 0xf], 1
mov dword [esi + 0x538], 2
mov dword [esi + 0x12c], ecx
lea ecx, [esi + 0x5c]
mov word [esi + 0x130], 0
mov byte [esi + 0x134], 1
call fcn.00415860
jmp 0x41954b
lea ecx, [esi + 0x5c]
lea edx, [esi + 0x128]
mov byte [esi + 0xf], 1
mov dword [esi + 0x538], 2
call fcn.00415860
mov ecx, dword [esi + 0x5c]
test ecx, ecx
je 0x4195ee
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0x60]
mov edi, dword [esi + 0x14]
mov edx, dword [esi + 0x20]
test ebx, ebx
je 0x4195c9
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], ebx
mov dword [esi + 0x538], 0x1c
lea ecx, [esi + 0x5c]
push edi
call fcn.00416b80
add esp, 4
cmp dword [esi + 0x34], 1
je 0x419593
lea ecx, [esi + 0x5c]
call fcn.00418120
mov ecx, dword [esi + 0x5c]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x18], edx
call fcn.0041d2f0
mov edx, dword [esi + 0x60]
test al, al
jne 0x4197fe
mov ecx, dword [esi + 0x10]
test edx, edx
je 0x41952f
mov edx, 1
call fcn.00404a30
jmp 0x41952f
test eax, eax
je 0x4195d7
mov edx, 1
call fcn.00404a30
lea ecx, [esi + 0x5c]
lea edx, [esi + 0x128]
mov byte [esi + 0xf], 1
call fcn.00415860
jmp 0x41954b
lea eax, [esi + 0x128]
push 0x400
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov edi, 0x200
mov dword [esi + 0x28], 2
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 2
cmp edi, 0x201
jae 0x419654
jmp 0x4196d4
mov edi, ebx
jbe 0x4196e3
cmp edi, 0x201
jb 0x4196d4
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x2c]
mov eax, edi
sub eax, edx
sub ecx, edx
cmp ecx, eax
jae 0x419686
mov dword [esi + 0x18], edi
mov dword [esi + 0x538], 3
lea ecx, [esi + 0x28]
push eax
call fcn.004237c0
add esp, 4
mov eax, dword [esi + 0x28]
mov edi, dword [esi + 0x18]
mov dword [esi + 0x1c], eax
mov ebx, dword [esi + 0x1c]
mov dword [esi + 0x30], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x24], ebx
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov ebx, eax
test eax, eax
jne 0x4196b7
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x41971d
cmp ebx, edi
jne 0x419640
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x41aeb0
add edi, edi
cmp edi, 0x201
jae 0x419654
lea ebx, [esi + 0x128]
mov dword [esi + 0x18], 0x200
jmp 0x419692
mov edx, dword [esi + 0x18]
mov dword [esi + 0x538], 3
cmp ebx, edx
ja 0x41b00e
mov edx, dword [esi + 0x24]
lea ecx, [esi + 0x40]
push ebx
call fcn.00412c90
add esp, 4
mov eax, dword [esi + 0x48]
movsd xmm0, qword [esi + 0x40]
mov bl, 1
mov dword [esi + 0x68], eax
movsd qword [esi + 0x60], xmm0
xor eax, eax
jmp 0x419734
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0x64], eax
mov eax, 1
xor ebx, ebx
mov dword [esi + 0x60], 0
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x419755
cmp dword [esi + 0x1c], 0
je 0x419755
add eax, eax
je 0x419755
mov ecx, dword [esi + 0x1c]
mov edx, 2
call fcn.00404a30
test bl, bl
je 0x419809
mov edx, dword [esi + 0x68]
movsd xmm0, qword [esi + 0x60]
mov byte [esi + 0x8e], 1
mov dword [esi + 0x538], 0x1a
movsd qword [esi + 0x40], xmm0
mov dword [esi + 0x48], edx
mov dword [esi + 0x10], edx
mov ecx, dword [esi + 0x40]
call fcn.00417dc0
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0x20]
test eax, eax
je 0x41979b
cmp dword [esi + 0x10], edx
jb 0x41979b
mov dword [esi + 0x48], edx
mov eax, dword [esi + 0x48]
movsd xmm0, qword [esi + 0x40]
mov dword [esi + 0x538], 0x1b
lea ecx, [esi + 0x128]
mov edx, ebx
mov dword [esi + 0x130], eax
movsd qword [esi + 0x128], xmm0
push edi
call fcn.00416b80
add esp, 4
cmp dword [esi + 0x34], 1
je 0x4197dd
lea ecx, [esi + 0x128]
call fcn.00418120
mov ecx, dword [esi + 0x128]
mov edx, dword [esi + 0x130]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x18], edx
call fcn.0041d2f0
mov edx, dword [esi + 0x12c]
test al, al
je 0x419821
mov ecx, dword [esi + 0x38]
mov ebx, dword [esi + 0x10]
jmp 0x41acea
lea ecx, [esi + 0x5c]
mov byte [esi + 0xf], 1
mov dword [esi + 0x538], 2
call fcn.00412320
jmp 0x419832
mov ecx, dword [esi + 0x10]
test edx, edx
je 0x419832
mov edx, 1
call fcn.00404a30
lea eax, [esi + 0x128]
push 0x400
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov edi, 0x200
mov dword [esi + 0x28], 2
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 2
cmp edi, 0x201
jae 0x419890
jmp 0x4198d0
mov edi, ebx
jbe 0x41992a
cmp edi, 0x201
jb 0x4198d0
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x2c]
mov eax, edi
sub eax, edx
sub ecx, edx
cmp ecx, eax
jae 0x4198c2
mov dword [esi + 0x18], edi
mov dword [esi + 0x538], 0x18
lea ecx, [esi + 0x28]
push eax
call fcn.004237c0
add esp, 4
mov eax, dword [esi + 0x28]
mov edi, dword [esi + 0x18]
mov dword [esi + 0x1c], eax
mov ebx, dword [esi + 0x1c]
mov dword [esi + 0x30], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x24], edi
jmp 0x4198dd
lea ebx, [esi + 0x128]
mov dword [esi + 0x24], 0x200
mov dword [esi + 0x18], ebx
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ebx, eax
test eax, eax
jne 0x419904
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x41999b
cmp ebx, edi
jne 0x419880
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x41aed6
add edi, edi
cmp edi, 0x201
jb 0x4198d0
jmp 0x419890
mov edx, dword [esi + 0x24]
mov dword [esi + 0x538], 0x18
cmp ebx, edx
ja 0x41b02c
mov edx, dword [esi + 0x18]
lea ecx, [esi + 0x40]
push ebx
call fcn.00412c90
add esp, 4
mov edx, dword [esi + 0x20]
mov dword [esi + 0x538], 0x19
lea ecx, [esi + 0x40]
push dword [esi + 0x14]
call fcn.00416b80
add esp, 4
cmp dword [esi + 0x34], 1
je 0x419977
lea ecx, [esi + 0x40]
call fcn.00418120
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x48]
mov dword [esi + 0x10], ecx
call fcn.0041d2f0
test al, al
je 0x41a53c
mov edx, dword [esi + 0x44]
mov eax, dword [esi + 0x48]
mov ebx, dword [esi + 0x10]
jmp 0x41a553
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov dword [esi + 0x64], eax
mov eax, 1
xor ebx, ebx
mov cl, 1
mov dword [esi + 0x60], 0
jmp 0x41a563
lea ecx, [ebx + edx + 1]
mov edi, dword [esi + 0x18]
mov ebx, dword [esi + 0x14]
mov edx, dword [esi + 0x20]
test ebx, ebx
cmovne ecx, ebx
test ecx, ecx
je 0x4199e7
test ebx, ebx
mov ebx, dword [esi + 0x10]
cmove edx, eax
add ecx, edx
sub ecx, ebx
cmp edi, ecx
cmovae edi, ecx
mov ecx, dword [esi + 0x38]
jmp 0x4199ed
mov ecx, dword [esi + 0x38]
mov ebx, dword [esi + 0x10]
mov edx, dword [esi + 0x60]
mov dword [esi + 0x538], 0x13
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x98], edx
mov edx, edi
mov dword [esi + 0x94], ebx
mov dword [esi + 0x128], 2
mov dword [esi + 0x12c], 0
mov dword [esi + 0x9c], edi
mov dword [esi + 0x130], 0
mov dword [esi + 0x538], 0x13
mov dword [esi + 0x10], ebx
mov dword [esi + 0x18], edi
mov dword [esi + 0x14], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x20], eax
mov al, byte [ecx + 0x51]
mov ecx, ebx
mov byte [esi + 0x24], al
call fcn.00418000
test eax, eax
je 0x419a71
cmp edx, 2
jne 0x419bc2
movzx ecx, word [eax]
cmp ecx, 0x2e2e
jne 0x419bc2
xor ecx, ecx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x538], 0x13
lea ecx, [esi + 0x5c]
lea edx, [esi + 0x128]
push 0
push dword [esi + 0x18]
push dword [esi + 0x10]
call fcn.0041d4b0
add esp, 0xc
cmp byte [esi + 0x5c], 4
jne 0x419aa4
mov edi, dword [esi + 0x14]
jmp 0x419ab3
mov ebx, dword [esi + 0x5c]
mov edi, dword [esi + 0x14]
cmp bl, 4
jne 0x419b49
mov eax, dword [esi + 0x20]
shl eax, 4
add eax, edi
mov dword [esi + 0x20], eax
mov al, byte [esi + 0x24]
xor al, 1
movzx eax, al
mov dword [esi + 0x10], eax
nop dword [eax]
cmp edi, dword [esi + 0x20]
je 0x419b87
mov edx, dword [esi + 0x130]
mov dword [esi + 0x14], edi
cmp edx, dword [esi + 0x12c]
jne 0x419afe
lea ecx, [esi + 0x128]
call fcn.00414920
mov edx, dword [esi + 0x130]
mov edi, dword [esi + 0x14]
mov eax, dword [esi + 0x128]
lea ecx, [esi + 0x5c]
mov word [eax + edx*2], 0x20
inc edx
mov eax, 2
mov dword [esi + 0x130], edx
lea edx, [esi + 0x128]
cmp dword [edi], 0
cmove eax, dword [esi + 0x10]
push eax
push dword [edi + 0xc]
push dword [edi + 4]
call fcn.0041d4b0
add esp, 0xc
mov edi, dword [esi + 0x14]
add edi, 0x10
cmp byte [esi + 0x5c], 4
je 0x419ad0
mov ebx, dword [esi + 0x5c]
cmp bl, 4
je 0x419ad0
mov eax, dword [esi + 0x12c]
mov edi, dword [esi + 0x60]
test eax, eax
je 0x419b6e
mov ecx, dword [esi + 0x128]
test ecx, ecx
je 0x419b6e
add eax, eax
je 0x419b6e
mov edx, 2
call fcn.00404a30
mov eax, dword [esi + 0x90]
mov dword [eax + 4], ebx
xor ebx, ebx
mov dword [eax + 8], edi
mov dword [eax], 1
jmp 0x41aacd
cmp byte [esi + 0x1c], 0
je 0x419c6b
mov edx, dword [esi + 0x130]
cmp edx, dword [esi + 0x12c]
jne 0x419bb0
lea ecx, [esi + 0x128]
call fcn.00414920
mov edx, dword [esi + 0x130]
mov eax, dword [esi + 0x128]
mov word [eax + edx*2], 0x22
inc edx
jmp 0x419c71
add eax, edx
mov ecx, 4
nop dword [eax]
lea edi, [edx + ecx]
cmp edi, 4
je 0x419a71
cmp byte [eax + ecx - 5], 0x2e
lea edi, [ecx - 1]
mov ecx, edi
jne 0x419bd0
lea ecx, [edx + edi - 3]
cmp edx, ecx
jb 0x41affd
add edx, edi
xor ecx, ecx
lea eax, [eax + edi - 3]
cmp edx, 4
cmove eax, ecx
je 0x419a73
test edi, edi
jne 0x419a73
mov dl, byte [eax]
mov ecx, edx
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, dl
cmp cl, 0x62
je 0x41a4cd
cmp cl, 0x63
jne 0x419a71
mov cl, byte [eax + 1]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x6d
jne 0x419a71
mov al, byte [eax + 2]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x64
jmp 0x41a4ff
mov edx, dword [esi + 0x130]
mov ecx, dword [esi + 0x12c]
mov eax, dword [esi + 0x128]
cmp edx, ecx
mov dword [esi + 0xa8], ecx
mov dword [esi + 0xa4], eax
mov dword [esi + 0xac], edx
jne 0x419cb8
lea ecx, [esi + 0xa4]
mov byte [esi + 0x3c], 1
mov dword [esi + 0x538], 7
call fcn.00414920
mov eax, dword [esi + 0xa4]
mov edx, dword [esi + 0xac]
mov ecx, dword [esi + 0x38]
mov word [eax + edx*2], 0
inc edx
mov eax, 0x400
mov edi, 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x24], 2
mov dword [esi + 0xac], edx
mov edx, 0x608
cmp byte [ecx + 0x50], 0
cmove edx, eax
mov eax, 2
or edx, dword [ecx + 0x34]
cmp byte [esi + 0x88], 0
mov dword [esi + 0x11c], edx
mov edx, 0
je 0x419dea
mov dword [esi + 0x1c], eax
lea eax, [ecx + 0x28]
mov ecx, dword [ecx + 0x28]
mov dword [esi + 0x34], edi
mov dword [esi + 0x20], edx
test ecx, ecx
cmove eax, ecx
mov ecx, 0
je 0x41a365
mov edx, dword [eax]
mov eax, dword [eax + 8]
xor ebx, ebx
add eax, edx
mov dword [esi + 0x18], edx
mov dword [esi + 0x14], eax
jmp 0x419d4b
xor ebx, ebx
test di, di
je 0x419e38
mov di, 1
test bx, bx
jne 0x419d40
cmp edx, dword [esi + 0x14]
je 0x41a2f7
movzx ecx, byte [edx]
movzx eax, cl
test cl, cl
js 0x419d6e
inc edx
xor ebx, ebx
mov edi, eax
jmp 0x419d42
movzx ebx, byte [edx + 1]
and eax, 0x1f
and ebx, 0x3f
cmp cl, 0xdf
jbe 0x419db6
mov dword [esi + 0x10], edx
movzx edx, byte [edx + 2]
shl ebx, 6
and edx, 0x3f
or edx, ebx
cmp cl, 0xf0
mov ebx, edx
jb 0x419dc7
mov edx, dword [esi + 0x10]
and eax, 7
shl ebx, 6
shl eax, 0x12
movzx ecx, byte [edx + 3]
add edx, 4
and ecx, 0x3f
or ecx, ebx
or eax, ecx
cmp eax, 0xffff
jbe 0x419d68
jmp 0x419dd9
shl eax, 6
add edx, 2
or eax, ebx
cmp eax, 0xffff
ja 0x419dd9
jmp 0x419d68
mov edx, dword [esi + 0x10]
shl eax, 0xc
or eax, ebx
add edx, 3
cmp eax, 0xffff
jbe 0x419d68
and eax, 0x3ff
or eax, 0xdc00
mov ebx, eax
jmp 0x419d42
mov ecx, dword [esi + 0x108]
mov edx, dword [esi + 0x100]
mov edi, dword [esi + 0x104]
mov dword [esi + 0x28], 2
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
test ecx, ecx
mov dword [esi + 0x114], edx
mov dword [esi + 0x110], edi
mov dword [esi + 0x10c], ecx
je 0x419e5a
mov ebx, 2
mov dword [esi + 0xb0], 0
jmp 0x419e9a
mov eax, dword [esi + 0x90]
mov edi, dword [esi + 0x20]
mov dword [eax + 8], 0x4273b4
mov dword [eax + 4], 2
mov dword [eax], 1
jmp 0x41aa94
lea ecx, [esi + 0x28]
xor edx, edx
mov byte [esi + 0x3d], 1
mov dword [esi + 0x538], 0xe
call fcn.00414920
mov ebx, dword [esi + 0x28]
mov eax, dword [esi + 0x30]
mov edx, dword [esi + 0x114]
mov edi, dword [esi + 0x110]
mov ecx, dword [esi + 0x10c]
mov word [ebx + eax*2], 0
inc eax
mov dword [esi + 0xb0], eax
mov dword [esi + 0x30], eax
xor eax, eax
test edi, edi
mov dword [esi + 0x88], ebx
mov dword [esi + 0x538], 0xf
sete al
cmove ecx, edi
add eax, eax
mov dword [esi + 0x128], eax
mov dword [esi + 0x12c], edx
mov dword [esi + 0x130], edi
mov dword [esi + 0x138], eax
mov dword [esi + 0x13c], edx
mov dword [esi + 0x140], edi
mov dword [esi + 0x148], ecx
lea ecx, [esi + 0x5c]
lea edx, [esi + 0x128]
call fcn.004182a0
mov eax, dword [esi + 0x60]
test eax, eax
je 0x41a7ad
mov ecx, dword [esi + 0x64]
lea ecx, [ecx + ecx*2]
mov edi, dword [eax + ecx*8 + 4]
test edi, edi
je 0x41a7ad
mov edx, dword [eax + ecx*8 + 8]
mov ebx, dword [eax + ecx*8 + 0xc]
mov dword [esi + 0xa0], edi
mov dword [esi + 0x84], edx
mov edx, dword [eax + ecx*8 + 0x10]
add ebx, edi
mov dword [esi + 0x14], ebx
mov dword [esi + 0x1c], edx
mov edx, dword [eax + ecx*8 + 0x14]
mov dword [esi + 0x34], edx
mov edx, dword [eax + ecx*8 + 0x18]
mov dword [esi + 0x118], edx
mov edx, dword [eax + ecx*4 + 0x114]
mov dword [esi + 0x48], edx
movsd xmm0, qword [eax + ecx*4 + 0x10c]
xor eax, eax
movsd qword [esi + 0x40], xmm0
jmp 0x419f6b
xor eax, eax
test bx, bx
je 0x41a23d
mov bx, 1
test ax, ax
jne 0x419f60
cmp edi, dword [esi + 0x14]
je 0x41a00a
movzx ecx, byte [edi]
movzx edx, cl
test cl, cl
js 0x419f8e
inc edi
xor eax, eax
mov ebx, edx
jmp 0x419f62
movzx eax, byte [edi + 1]
and edx, 0x1f
and eax, 0x3f
cmp cl, 0xdf
jbe 0x419fd1
mov dword [esi + 0x10], edi
movzx edi, byte [edi + 2]
shl eax, 6
and edi, 0x3f
or edi, eax
cmp cl, 0xf0
mov dword [esi + 0x20], edi
jb 0x419fe3
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x20]
and edx, 7
shl edx, 0x12
movzx eax, byte [edi + 3]
shl ecx, 6
add edi, 4
and eax, 0x3f
or eax, ecx
jmp 0x419fd7
add edi, 2
shl edx, 6
or edx, eax
cmp edx, 0xffff
ja 0x419ff7
jmp 0x419f88
mov edi, dword [esi + 0x10]
shl edx, 0xc
add edx, dword [esi + 0x20]
add edi, 3
cmp edx, 0xffff
jbe 0x419f88
and edx, 0x3ff
or edx, 0xdc00
mov eax, edx
jmp 0x419f62
cmp dword [esi + 0x84], 0
je 0x41a023
mov ecx, dword [esi + 0xa0]
mov edx, 1
call fcn.00404a30
mov ecx, dword [esi + 0x1c]
mov ebx, dword [esi + 0x118]
mov edx, dword [esi + 0x34]
mov edi, dword [esi + 0xb0]
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x60], edx
lea eax, [ecx + ebx*2]
mov dword [esi + 0x64], ecx
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x88]
mov dword [esi + 0x68], eax
sub ecx, edi
cmp ecx, ebx
jae 0x41a077
mov dword [esi + 0x538], 0x12
lea ecx, [esi + 0x28]
mov edx, edi
push ebx
call fcn.004237c0
add esp, 4
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x30]
mov ebx, dword [esi + 0x118]
lea eax, [ebx + ebx]
mov dword [esi + 0x88], edx
lea ecx, [edx + edi*2]
push eax
push dword [esi + 0x1c]
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x34]
add edi, ebx
mov dword [esi + 0x30], edi
test eax, eax
je 0x41a0ad
add eax, eax
je 0x41a0ad
mov ecx, dword [esi + 0x1c]
mov edx, 2
call fcn.00404a30
cmp edi, dword [esi + 0x2c]
jne 0x41a0d2
lea ecx, [esi + 0x28]
mov edx, edi
mov byte [esi + 0x3f], 1
mov dword [esi + 0x538], 0x10
call fcn.00414920
mov eax, dword [esi + 0x28]
mov edi, dword [esi + 0x30]
jmp 0x41a0d8
mov eax, dword [esi + 0x88]
mov word [eax + edi*2], 0x3d
inc edi
xor ebx, ebx
mov edx, dword [esi + 0x40]
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], ecx
add ecx, edx
mov dword [esi + 0x1c], edx
mov dword [esi + 0x20], eax
mov dword [esi + 0x14], ecx
jmp 0x41a10b
xor ebx, ebx
test di, di
je 0x41a288
mov di, 1
test bx, bx
jne 0x41a100
cmp edx, dword [esi + 0x14]
je 0x41a1a8
movzx eax, byte [edx]
movzx ecx, al
test al, al
js 0x41a12d
mov eax, dword [esi + 0x20]
inc edx
jmp 0x41a18c
movzx ebx, byte [edx + 1]
and ecx, 0x1f
and ebx, 0x3f
cmp al, 0xdf
jbe 0x41a16c
mov dword [esi + 0x10], edx
movzx edx, byte [edx + 2]
shl ebx, 6
and edx, 0x3f
or edx, ebx
cmp al, 0xf0
mov ebx, edx
jb 0x41a176
mov edx, dword [esi + 0x10]
and ecx, 7
shl ebx, 6
shl ecx, 0x12
movzx eax, byte [edx + 3]
add edx, 4
and eax, 0x3f
or eax, ebx
or ecx, eax
jmp 0x41a181
shl ecx, 6
add edx, 2
or ecx, ebx
jmp 0x41a181
mov edx, dword [esi + 0x10]
shl ecx, 0xc
or ecx, ebx
add edx, 3
mov eax, dword [esi + 0x20]
cmp ecx, 0xffff
ja 0x41a195
xor ebx, ebx
mov edi, ecx
jmp 0x41a102
and ecx, 0x3ff
or ecx, 0xdc00
mov ebx, ecx
jmp 0x41a102
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x34]
mov dword [esi + 0x60], eax
mov dword [esi + 0x538], 0x11
mov dword [esi + 0x5c], edx
mov dword [esi + 0x64], ecx
lea ecx, [esi + 0x28]
push 0
push dword [esi + 0x14]
call fcn.004149a0
add esp, 8
cmp dword [esi + 0x20], 0
je 0x41a1e4
mov ecx, dword [esi + 0x1c]
mov edx, 1
call fcn.00404a30
mov eax, dword [esi + 0x30]
cmp eax, dword [esi + 0x2c]
jne 0x41a207
lea ecx, [esi + 0x28]
mov edx, eax
mov byte [esi + 0x3f], 0
mov dword [esi + 0x538], 0x10
call fcn.00414920
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x28]
lea ecx, [esi + 0x5c]
lea edx, [esi + 0x128]
mov word [edi + eax*2], 0
inc eax
mov dword [esi + 0x88], edi
mov dword [esi + 0x538], 0xf
mov dword [esi + 0xb0], eax
mov dword [esi + 0x30], eax
call fcn.004182a0
jmp 0x419eee
cmp dword [esi + 0x84], 0
je 0x41a256
mov ecx, dword [esi + 0xa0]
mov edx, 1
call fcn.00404a30
cmp dword [esi + 0x44], 0
je 0x41a26d
mov ecx, dword [esi + 0x40]
test ecx, ecx
je 0x41a26d
mov edx, 1
call fcn.00404a30
mov eax, dword [esi + 0x34]
test eax, eax
je 0x41a2a3
cmp dword [esi + 0x1c], 0
je 0x41a2a3
add eax, eax
je 0x41a2a3
mov ecx, dword [esi + 0x1c]
mov edx, 2
jmp 0x41a294
test eax, eax
je 0x41a299
mov ecx, dword [esi + 0x1c]
mov edx, 1
call fcn.00404a30
mov dword [esi + 0x538], 0xe
lea ecx, [esi + 0x128]
mov byte [esi + 0x3d], 0
mov dword [esi + 0x538], 0xe
call fcn.0041d8e0
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x41a2d8
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x41a2d8
add eax, eax
je 0x41a2d8
mov edx, 2
call fcn.00404a30
mov eax, dword [esi + 0x90]
mov dword [eax + 8], 0x4273b4
mov dword [eax + 4], 2
mov dword [eax], 1
jmp 0x41aaa9
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
lea edx, [esi + 0x128]
mov dword [esi + 0x538], 8
mov dword [esi + 0x128], eax
mov dword [esi + 0x12c], ecx
lea ecx, [esi + 0x5c]
mov word [esi + 0x130], 0
call fcn.00414720
mov eax, dword [esi + 0x60]
mov edx, dword [esi + 0x64]
cmp edx, eax
jne 0x41a34c
lea ecx, [esi + 0x5c]
mov dword [esi + 0x538], 0xd
call fcn.00414920
mov eax, dword [esi + 0x60]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x18], eax
mov ecx, dword [esi + 0x5c]
mov word [ecx + edx*2], 0
mov dword [esi + 0x538], 9
mov dword [esi + 0x24], ecx
xorps xmm0, xmm0
mov dword [esi + 0x88], ecx
movaps xmmword [esi + 0x40], xmm0
push 0x42a1f8
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov eax, dword [esi + 0x38]
xor ecx, ecx
lea ebx, [ebp + 8]
mov dword [esi + 0x128], 0
mov dword [esi + 0x130], 0
mov dword [esi + 0x120], 0x42a1f8
mov dword [esi + 0x138], 0
mov dword [esi + 0x28], 1
mov edi, dword [eax + 0x38]
lea edx, [eax + 0x38]
cmp edi, 4
mov dword [esi + 0x14], edi
lea edi, [esi + 0xb4]
cmove edx, ecx
cmp byte [ebp + 0xc], 0
lea ecx, [esi + 0x28]
cmovne ecx, ebx
lea ebx, [esi + 0x124]
cmovne ebx, edi
cmp dword [esi + 0x14], 4
lea edi, [edx + 4]
cmovne ecx, edx
mov edx, dword [eax + 0x40]
cmove edi, ebx
mov ebx, 0
mov dword [esi + 0x10], edx
cmp edx, 4
lea edx, [eax + 0x40]
cmove edx, ebx
mov dword [esi + 0x14], edx
mov edx, dword [eax + 0x48]
add eax, 0x48
cmp edx, 4
mov dword [esi + 0x84], edx
mov edx, dword [ecx]
lea ecx, [esi + 0x5c]
cmove eax, ebx
mov dword [esi + 0x38], eax
mov eax, dword [edi]
lea edi, [esi + 0x128]
mov dword [esi + 0x538], 9
push edi
push 0xfffffffffffffff6
push eax
call fcn.0041d9a0
add esp, 0xc
cmp dword [esi + 0x5c], 0
je 0x41a45e
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x60]
mov edx, dword [esi + 0x90]
mov ecx, dword [esi + 0x64]
mov dword [edx + 8], ecx
mov dword [edx + 4], eax
mov dword [edx], 1
jmp 0x41aa32
mov edx, dword [esi + 0x60]
mov edi, dword [esi + 0x14]
cmp dword [esi + 0x10], 4
lea eax, [esi + 0x130]
mov dword [esi + 0x10], edx
lea edx, [ebp + 8]
lea ecx, [edi + 4]
cmove edi, edx
mov edx, dword [edi]
lea edi, [esi + 0xb4]
cmove ecx, edi
mov edi, dword [ecx]
mov dword [esi + 0x538], 0xa
lea ecx, [esi + 0x5c]
push eax
push 0xfffffffffffffff5
push edi
call fcn.0041d9a0
add esp, 0xc
cmp dword [esi + 0x5c], 0
mov ecx, dword [esi + 0x38]
je 0x41a724
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x60]
mov edx, dword [esi + 0x90]
mov ecx, dword [esi + 0x64]
mov dword [edx + 8], ecx
mov dword [edx + 4], eax
mov dword [edx], 1
jmp 0x41aa29
mov cl, byte [eax + 1]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x61
jne 0x419a71
mov al, byte [eax + 2]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x74
mov dword [esi + 0x538], 0x13
jne 0x419a71
lea ecx, [esi + 0x128]
xor edx, edx
call fcn.00414920
mov eax, dword [esi + 0x128]
mov ecx, dword [esi + 0x130]
mov word [eax + ecx*2], 0x22
inc ecx
mov dword [esi + 0x130], ecx
mov cl, 1
jmp 0x419a73
xor ebx, ebx
cmp dword [esi + 0x44], 0
je 0x41a553
mov ecx, dword [esi + 0x10]
mov edx, 1
call fcn.00404a30
xor ebx, ebx
mov dword [esi + 0x60], ebx
mov dword [esi + 0x64], edx
mov dword [esi + 0x18], eax
mov dword [esi + 0x68], eax
xor ecx, ecx
xor eax, eax
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x41a594
cmp dword [esi + 0x1c], 0
je 0x41a594
add eax, eax
je 0x41a594
mov dword [esi + 0x24], ecx
mov ecx, dword [esi + 0x1c]
mov edi, edx
mov edx, 2
mov dword [esi + 0x10], ebx
call fcn.00404a30
mov ecx, dword [esi + 0x24]
mov ebx, dword [esi + 0x10]
mov edx, edi
test ebx, ebx
not cl
setne al
test cl, al
jne 0x41a6ab
lea ecx, [esi + 0x5c]
mov byte [esi + 0xf], 1
mov dword [esi + 0x538], 2
call fcn.0041d3e0
lea eax, [esi + 0x128]
push 0x400
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov edi, 0x200
mov dword [esi + 0x28], 2
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 2
cmp edi, 0x201
jae 0x41a611
jmp 0x41a651
mov edi, ebx
jbe 0x41a6b3
cmp edi, 0x201
jb 0x41a651
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x2c]
mov eax, edi
sub eax, edx
sub ecx, edx
cmp ecx, eax
jae 0x41a643
mov dword [esi + 0x18], edi
mov dword [esi + 0x538], 0x16
lea ecx, [esi + 0x28]
push eax
call fcn.004237c0
add esp, 4
mov eax, dword [esi + 0x28]
mov edi, dword [esi + 0x18]
mov dword [esi + 0x1c], eax
mov ebx, dword [esi + 0x1c]
mov dword [esi + 0x30], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x24], edi
jmp 0x41a65e
lea ebx, [esi + 0x128]
mov dword [esi + 0x24], 0x200
mov dword [esi + 0x18], ebx
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov ebx, eax
test eax, eax
jne 0x41a685
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x41a78d
cmp ebx, edi
jne 0x41a601
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x41af72
add edi, edi
cmp edi, 0x201
jb 0x41a651
jmp 0x41a611
mov ecx, dword [esi + 0x38]
jmp 0x41acea
mov edx, dword [esi + 0x24]
mov dword [esi + 0x538], 0x16
cmp ebx, edx
ja 0x41b035
mov edx, dword [esi + 0x18]
lea ecx, [esi + 0x40]
push ebx
call fcn.00412c90
add esp, 4
mov edx, dword [esi + 0x20]
mov dword [esi + 0x538], 0x17
lea ecx, [esi + 0x40]
push dword [esi + 0x14]
call fcn.00416b80
add esp, 4
cmp dword [esi + 0x34], 1
je 0x41a700
lea ecx, [esi + 0x40]
call fcn.00418120
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x48]
mov dword [esi + 0x10], ecx
call fcn.0041d2f0
test al, al
je 0x41a7ff
mov edx, dword [esi + 0x44]
mov eax, dword [esi + 0x48]
mov ebx, dword [esi + 0x10]
jmp 0x41a816
cmp dword [esi + 0x84], 4
lea edi, [ebp + 8]
lea edx, [esi + 0xb4]
lea eax, [esi + 0x138]
cmovne edi, ecx
lea ecx, [ecx + 4]
cmove ecx, edx
mov edx, dword [esi + 0x60]
mov dword [esi + 0x14], edx
mov edx, dword [edi]
mov edi, dword [ecx]
mov dword [esi + 0x538], 0xb
lea ecx, [esi + 0x5c]
push eax
push 0xfffffffffffffff4
push edi
call fcn.0041d9a0
add esp, 0xc
cmp dword [esi + 0x5c], 0
je 0x41a9a9
mov eax, dword [esi + 0x60]
mov edx, dword [esi + 0x90]
mov ecx, dword [esi + 0x64]
mov dword [edx + 8], ecx
mov dword [edx + 4], eax
mov dword [edx], 1
jmp 0x41aa1d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov cl, 1
mov edx, eax
mov dword [esi + 0x64], eax
mov eax, 1
xor ebx, ebx
mov dword [esi + 0x60], 0
mov dword [esi + 0x24], ecx
jmp 0x41a82b
lea ecx, [esi + 0x128]
mov byte [esi + 0x3d], 0
mov dword [esi + 0x538], 0xe
call fcn.0041d8e0
mov edx, dword [esi + 0xb0]
mov eax, dword [esi + 0x88]
cmp edx, dword [esi + 0x2c]
jne 0x41a7e9
lea ecx, [esi + 0x28]
mov byte [esi + 0x3d], 0
call fcn.00414920
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x30]
mov word [eax + edx*2], 0
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov edi, eax
jmp 0x419d0c
xor ebx, ebx
cmp dword [esi + 0x44], 0
je 0x41a816
mov ecx, dword [esi + 0x10]
mov edx, 1
call fcn.00404a30
xor ebx, ebx
mov dword [esi + 0x60], ebx
mov dword [esi + 0x64], edx
mov dword [esi + 0x18], eax
mov dword [esi + 0x68], eax
mov dword [esi + 0x24], 0
xor eax, eax
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x38]
test eax, eax
je 0x41a85c
cmp dword [esi + 0x1c], 0
je 0x41a85c
add eax, eax
je 0x41a85c
mov ecx, dword [esi + 0x1c]
mov edi, edx
mov edx, 2
mov dword [esi + 0x10], ebx
call fcn.00404a30
mov ebx, dword [esi + 0x10]
mov ecx, dword [esi + 0x38]
mov edx, edi
mov eax, dword [esi + 0x24]
test ebx, ebx
setne byte [esi + 0x10]
not al
test byte [esi + 0x10], al
jne 0x41acea
lea ecx, [esi + 0x5c]
mov byte [esi + 0xf], 1
mov dword [esi + 0x538], 2
call fcn.0041d3e0
mov byte [esi + 0xf], 1
lea ecx, [esi + 0x28]
mov edx, str.PATHlibrary_std_src_sys_common_thread_info.rs
push 4
call fcn.00414260
add esp, 4
cmp dword [esi + 0x28], 0
je 0x41a99f
movsd xmm0, qword [esi + 0x28]
mov eax, dword [esi + 0x30]
movsd qword [esi + 0x40], xmm0
mov dword [esi + 0x48], eax
mov ecx, dword [esi + 0x40]
add eax, ecx
mov dword [esi + 0x128], ecx
mov dword [esi + 0x24], ecx
mov dword [esi + 0x12c], eax
mov word [esi + 0x130], 0
mov byte [esi + 0x134], 1
lea ecx, [esi + 0x5c]
lea edx, [esi + 0x128]
mov dword [esi + 0x538], 0x14
call fcn.00415860
jmp 0x41a902
lea ecx, [esi + 0x5c]
lea edx, [esi + 0x128]
call fcn.00415860
mov ecx, dword [esi + 0x5c]
mov edi, dword [esi + 0x14]
mov edx, dword [esi + 0x20]
test ecx, ecx
je 0x41a98c
mov ebx, dword [esi + 0x64]
mov eax, dword [esi + 0x60]
test ebx, ebx
jne 0x41a929
test eax, eax
je 0x41a8f4
mov edx, 1
call fcn.00404a30
jmp 0x41a8f4
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], ebx
mov dword [esi + 0x538], 0x15
lea ecx, [esi + 0x5c]
push edi
call fcn.00416b80
add esp, 4
cmp dword [esi + 0x34], 1
je 0x41a956
lea ecx, [esi + 0x5c]
call fcn.00418120
mov ecx, dword [esi + 0x5c]
mov edx, dword [esi + 0x64]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x18], edx
call fcn.0041d2f0
mov edi, dword [esi + 0x60]
test al, al
jne 0x41accf
mov ecx, dword [esi + 0x10]
test edi, edi
je 0x41a8da
mov edx, 1
call fcn.00404a30
jmp 0x41a8da
cmp dword [esi + 0x44], 0
je 0x41a99f
mov ecx, dword [esi + 0x24]
mov edx, 1
call fcn.00404a30
mov ecx, 0x427404
jmp 0x4193dd
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x60]
mov edi, dword [esi + 0x9c]
mov dword [esi + 0x538], 0xc
mov dword [esi + 0xf0], eax
mov dword [esi + 0xf4], edx
mov edx, dword [esi + 0x94]
mov dword [esi + 0x84], ecx
mov dword [esi + 0xf8], ecx
lea ecx, [esi + 0x5c]
mov dword [esi + 0x38], edx
push edi
call fcn.004145c0
add esp, 4
cmp dword [esi + 0x5c], 0
mov eax, dword [esi + 0x60]
mov ebx, dword [esi + 0x64]
je 0x41ab88
mov ecx, dword [esi + 0x90]
mov dword [ecx + 4], eax
mov dword [ecx + 8], ebx
mov dword [ecx], 1
push dword [esi + 0x84]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [esi + 0x20]
push dword [esi + 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esi + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x128], 0
je 0x41aa47
push dword [esi + 0x12c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x130], 0
je 0x41aa5c
push dword [esi + 0x134]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x138], 0
je 0x41aa71
push dword [esi + 0x13c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x42a1f8
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esi + 0x18]
test eax, eax
je 0x41aa94
add eax, eax
je 0x41aa94
mov ecx, dword [esi + 0x24]
mov edx, 2
call fcn.00404a30
test edi, edi
je 0x41aaa9
add edi, edi
je 0x41aaa9
mov ecx, dword [esi + 0x1c]
mov edx, 2
call fcn.00404a30
mov eax, dword [esi + 0xa8]
mov bl, 1
test eax, eax
je 0x41aacd
mov ecx, dword [esi + 0xa4]
test ecx, ecx
je 0x41aacd
add eax, eax
je 0x41aacd
mov edx, 2
call fcn.00404a30
cmp dword [esi + 0x98], 0
je 0x41aaea
mov ecx, dword [esi + 0x94]
test ecx, ecx
je 0x41aaea
mov edx, 1
call fcn.00404a30
cmp dword [esi + 0xfc], 0
sete al
or bl, al
jne 0x41ab62
mov ecx, dword [esi + 0x104]
test ecx, ecx
je 0x41ab34
mov edx, dword [esi + 0x100]
mov eax, dword [esi + 0x108]
mov dword [esi + 0x538], 1
mov dword [esi + 0x12c], edx
mov dword [esi + 0x130], ecx
mov dword [esi + 0x13c], edx
mov dword [esi + 0x140], ecx
xor ecx, ecx
jmp 0x41ab3b
xor eax, eax
mov ecx, 2
mov dword [esi + 0x128], ecx
mov dword [esi + 0x138], ecx
lea ecx, [esi + 0x128]
mov dword [esi + 0x148], eax
mov dword [esi + 0x538], 1
call fcn.0041d8e0
cmp dword [ebp + 8], 3
jne 0x41ab74
push dword [esi + 0xb4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0x530]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esi + 0x60]
mov edi, dword [esi + 0xa4]
lea edx, [esi + 0xb8]
mov dword [esi + 0xa0], ecx
lea ecx, [esi + 0x40]
push ecx
push edx
push dword [esi + 0x88]
push dword [esi + 0x34]
push dword [esi + 0x11c]
push 1
push 0
push 0
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x41ac7b
mov dword [esi + 0x34], edi
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esi + 0x44]
call edi
movsd xmm1, qword [esi + 0x130]
mov ecx, dword [esi + 0x90]
movsd xmm0, qword [esi + 0x128]
mov eax, dword [esi + 0x40]
mov edx, ebx
movsd qword [ecx + 0x10], xmm1
movsd xmm1, qword [esi + 0x138]
movsd qword [ecx + 8], xmm0
movsd qword [ecx + 0x18], xmm1
mov dword [ecx + 4], eax
mov dword [ecx], 0
mov ecx, dword [esi + 0xa0]
call fcn.00413ef0
push dword [esi + 0x84]
call edi
push dword [esi + 0x14]
call edi
push dword [esi + 0x10]
call edi
push 0x42a1f8
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x18]
call fcn.00413ef0
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x20]
call fcn.00413ef0
mov edx, dword [esi + 0xa8]
mov ecx, dword [esi + 0x34]
call fcn.00413ef0
cmp dword [esi + 0x98], 0
je 0x41ab62
mov ecx, dword [esi + 0x38]
mov edx, 1
call fcn.00404a30
jmp 0x41ab62
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 0x90]
mov edx, ebx
mov dword [ecx + 8], eax
mov dword [ecx + 4], 0
mov dword [ecx], 1
mov ecx, dword [esi + 0xa0]
call fcn.00413ef0
jmp 0x41aa11
mov dword [esi + 0x538], 0
mov ecx, str.called__Option::unwrap____on_a__None__value
mov edx, 0x2b
push 0x426214
call fcn.00423500
add esp, 4
jmp 0x41b03c
cmp dword [esi + 0x44], 0
je 0x41ace2
mov ecx, dword [esi + 0x24]
mov edx, 1
call fcn.00404a30
mov ecx, dword [esi + 0x38]
mov ebx, dword [esi + 0x10]
mov edx, edi
mov edi, dword [esi + 0x18]
jmp 0x4199f0
mov ecx, dword [esi + 0x1c]
mov edx, ebx
mov dword [esi + 0x538], 0x26
call fcn.004233c0
jmp 0x41b03c
mov dword [esi + 0x538], 0x23
call fcn.00404a70
jmp 0x41b03c
mov dword [esi + 0x538], 0x26
call fcn.00404a70
jmp 0x41b03c
mov byte [esi + 0x83], 1
mov dword [esi + 0x538], 0x24
call fcn.00404a70
jmp 0x41b03c
mov dword [esi + 0x538], 0x26
call fcn.00404a70
jmp 0x41b03c
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edx, [esi + 0x40]
lea ecx, [esi + 0x28]
mov dword [esi + str.comparing_environment_keys_failed:], 0x427354
mov dword [esi + 0x12c], 1
mov dword [esi + 0x130], 0
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], 0
mov dword [esi + 0x538], 0x22
mov dword [esi + 0x28], edx
mov dword [esi + 0x138], ecx
lea ecx, [esi + 0x128]
mov edx, 0x427384
mov dword [esi + 0x2c], 0x415150
mov dword [esi + 0x13c], 1
call fcn.004234b0
jmp 0x41b03c
mov dword [esi + 0x538], 0x23
mov ecx, str.called__Option::unwrap____on_a__None__value
mov edx, 0x2b
push 0x426234
call fcn.00423500
add esp, 4
jmp 0x41b03c
mov ecx, ebx
mov edx, 1
mov byte [esi + 0x83], 1
call fcn.004233c0
jmp 0x41b03c
mov ecx, ebx
mov edx, 1
mov dword [esi + 0x538], 0x23
call fcn.004233c0
jmp 0x41b03c
mov ecx, 1
xor edx, edx
mov dword [esi + 0x538], 0x27
call fcn.004234e0
jmp 0x41b03c
mov edx, dword [esi + 0x14]
mov ecx, eax
call fcn.004234f0
jmp 0x41b03c
mov ecx, edi
mov dword [esi + 0x538], 0x28
call fcn.004234e0
jmp 0x41b03c
mov dword [esi + 0x538], 0x25
mov ecx, str.assertion_failed:_self.height___0
mov edx, 0x21
push 0x425ef4
call fcn.00423500
add esp, 4
jmp 0x41b03c
mov ecx, 4
mov edx, 1
mov byte [esi + 0xf], 1
mov dword [esi + 0x538], 2
call fcn.004233c0
jmp 0x41b03c
mov dword [esi + 0x538], 3
mov ecx, str.internal_error:_entered_unreachable_code
mov edx, 0x28
push 0x4275b0
call fcn.00423500
add esp, 4
jmp 0x41b03c
mov dword [esi + 0x538], 0x18
mov ecx, str.internal_error:_entered_unreachable_code
mov edx, 0x28
push 0x4275b0
call fcn.00423500
add esp, 4
jmp 0x41b03c
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edx, [esi + 0xb8]
lea ecx, [esi + 0x5c]
mov dword [esi + str.failure_getting_env_string_from_OS:_trB], 0x427298
mov dword [esi + 0x12c], 1
mov dword [esi + 0x130], 0
mov dword [esi + 0xbc], eax
mov dword [esi + 0xb8], 0
mov dword [esi + 0x538], 0x2b
mov dword [esi + 0x5c], edx
mov dword [esi + 0x138], ecx
lea ecx, [esi + 0x128]
mov edx, 0x4272a0
mov dword [esi + 0x60], 0x415150
mov dword [esi + 0x13c], 1
call fcn.004234b0
jmp 0x41b03c
mov dword [esi + 0x538], 0x16
mov ecx, str.internal_error:_entered_unreachable_code
mov edx, 0x28
push 0x4275b0
call fcn.00423500
add esp, 4
jmp 0x41b03c
mov byte [esi + 0xf], 1
mov dword [esi + 0x538], 2
call fcn.00404a70
jmp 0x41b03c
mov byte [esi + 0xf], 1
mov dword [esi + 0x538], 2
call fcn.00404a70
jmp 0x41b03c
mov ecx, edi
mov edx, 1
mov byte [esi + 0xf], 1
mov dword [esi + 0x538], 2
call fcn.004233c0
jmp 0x41b03c
mov ecx, edi
mov edx, 1
mov byte [esi + 0xf], 1
mov dword [esi + 0x538], 2
call fcn.004233c0
jmp 0x41b03c
mov dword [esi + 0x538], 0x13
call fcn.004234e0
jmp 0x41b03c
mov ecx, ebx
call fcn.004234f0
jmp 0x41b03c
mov byte [esi + 0x3e], 1
mov dword [esi + 0x538], 0x1d
call fcn.004234e0
jmp 0x41b03c
mov ecx, ebx
call fcn.004234f0
jmp 0x41b03c
mov ecx, ebx
call fcn.004234f0
ud2