Function at 0x416000
Capabilities:
Create process on windows
Encode data using base64
Get common file path
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x560
mov esi, esp
mov dword [esi + 0x548], ebp
mov dword [esi + 0x54c], esp
mov dword [esi + 0x558], 0xffffffff
mov dword [esi + 0x554], 0x41c8e0
mov dword [esi + 0xa0], ecx
mov eax, dword [ebp + 8]
mov dword [esi + 0x74], edx
call 0x416042
pop ebx
mov ecx, dword fs:[0]
mov dword [esi + 0x94], ebx
mov dword [esi + 0x550], ecx
lea ecx, [esi + 0x550]
mov dword fs:[0], ecx
mov dword [esi + 0xdc], eax
mov al, byte [edx + 0x24]
mov edi, dword [edx + 0x20]
test al, al
sete cl
test edi, edi
sete dl
and dl, cl
je 0x41608c
mov dword [esi + 0x128], 0
jmp 0x4167e9
test al, al
mov dword [esi + 0x8c], 0
mov byte [esi + 0x10], dl
mov dword [esi + 0x90], 0
jne 0x41620c
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
test eax, eax
je 0x418f11
mov dword [esi + 0xd0], eax
mov dword [esi + 0x30], edi
mov dword [esi + 0xd4], eax
nop dword [eax + eax]
lea eax, [esi + 0xd0]
mov dword [esi + 0x558], 5
push eax
lea eax, [esi + 0xe4]
push eax
call fcn.00413f20
add esp, 8
cmp dword [esi + 0xe4], 0
lea edi, [esi + 0xf0]
lea ecx, [esi + 0xac]
lea edx, [esi + 0x40]
je 0x4161fd
mov eax, dword [edi + 8]
movsd xmm1, qword [esi + 0xe4]
movq xmm0, qword [edi]
mov dword [esi + 0x558], 7
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0xec]
movsd qword [esi + 0x78], xmm1
movq qword [esi + 0x1c], xmm0
mov dword [esi + 0x80], eax
mov edi, dword [esi + 0x78]
add eax, edi
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], eax
mov word [esi + 0x48], 0
call fcn.00405560
movsd xmm0, qword [esi + 0xe4]
mov eax, dword [esi + 0xec]
lea ecx, [esi + 0x154]
mov byte [esi + 0x99], 0
mov dword [esi + 0x558], 6
lea edx, [esi + 0x88]
movsd qword [esi + 0x148], xmm0
mov dword [esi + 0x150], eax
mov eax, dword [esi + 0xb4]
movsd xmm0, qword [esi + 0xac]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
lea ecx, [esi + 0xf0]
mov eax, dword [ecx + 8]
movq xmm0, qword [ecx]
lea ecx, [esi + 0xac]
mov dword [esi + 0x48], eax
lea eax, [esi + 0x40]
movq qword [esi + 0x40], xmm0
push eax
lea eax, [esi + 0x148]
push eax
call fcn.00405e90
add esp, 8
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4160d0
mov ecx, dword [esi + 0xb0]
test ecx, ecx
je 0x4160d0
push 1
push ecx
push eax
call fcn.00402fa0
add esp, 0xc
jmp 0x4160d0
push dword [esi + 0xd0]
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov edi, dword [esi + 0x30]
mov ecx, dword [esi + 0x74]
xor edx, edx
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
test ecx, ecx
sete dl
cmove edi, ecx
add edx, edx
mov dword [esi + 0xac], edx
mov dword [esi + 0xb0], eax
mov dword [esi + 0xb4], ecx
mov dword [esi + 0xbc], edx
mov dword [esi + 0xc0], eax
mov dword [esi + 0xc4], ecx
mov dword [esi + 0xcc], edi
mov dword [esi + 0x558], 1
nop word cs:[eax + eax]
nop
lea ecx, [esi + 0xac]
mov dword [esi + 0x558], 1
call fcn.00402ff0
mov ebx, eax
test eax, eax
je 0x4167c0
cmp dword [edx], 0
je 0x4162c0
mov edi, dword [ebx + 8]
mov eax, dword [ebx]
mov dword [esi + 8], edx
test edi, edi
je 0x416400
mov dword [esi + 4], eax
js 0x418dc2
push 1
push edi
call fcn.00402f90
add esp, 8
mov ecx, edi
mov edi, eax
test eax, eax
mov eax, dword [esi + 4]
jne 0x416407
jmp 0x418de0
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x416260
mov edx, dword [esi + 0x88]
lea ecx, [esi + 0x78]
mov dword [esi + 8], edx
push dword [ebx + 0x14]
push dword [ebx + 0xc]
mov dword [esi + 0x30], eax
push eax
call fcn.00408510
add esp, 0xc
cmp dword [esi + 0x78], 0
jne 0x416260
mov ecx, dword [esi + 0x7c]
mov eax, dword [esi + 0x80]
mov edx, dword [esi + 0x84]
mov byte [esi + 0x1c], 0
test ecx, ecx
je 0x416586
mov eax, dword [eax + edx*4 + 0x194]
dec ecx
je 0x41633b
nop word [eax + eax]
movzx edx, word [eax + 0x192]
dec ecx
mov eax, dword [eax + edx*4 + 0x194]
jne 0x416320
mov dword [esi + 0x558], 1
movzx ecx, word [eax + 0x192]
mov dword [esi + 0xe4], 0
mov dword [esi + 0xe8], eax
lea eax, [esi + 0x1c]
lea edx, [esi + 0xe4]
dec ecx
mov dword [esi + 0xec], ecx
lea ecx, [esi + 0x148]
push eax
call fcn.00407f70
add esp, 4
movsd xmm1, qword [esi + 0x158]
mov eax, dword [esi + 0x168]
movq xmm0, qword [esi + 0x160]
movsd xmm2, qword [esi + 0x148]
mov ecx, dword [esi + 0x170]
mov edx, dword [esi + 0x174]
movsd qword [esi + 0x50], xmm1
movsd xmm1, qword [esi + 0x150]
mov dword [esi + 0x60], eax
movq qword [esi + 0x58], xmm0
movsd qword [esi + 0x40], xmm2
mov eax, dword [esi + 0x16c]
movsd qword [esi + 0x48], xmm1
movzx edi, word [ecx + 0x192]
cmp edx, edi
jb 0x4165bb
nop
mov edi, dword [ecx]
test edi, edi
je 0x4165b9
movzx edx, word [ecx + 0x190]
inc eax
mov ecx, edi
cmp dx, word [edi + 0x192]
jae 0x4163d0
jmp 0x4165bb
mov ecx, edi
mov edi, 1
mov dword [esi + 0x30], ecx
push ecx
push eax
push edi
call fcn.0042b6b0
add esp, 0xc
mov eax, dword [esi + 0x30]
mov dword [esi + 0xe4], edi
mov dword [esi + 0xe8], eax
mov dword [esi + 0xec], eax
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebx + 0xc]
test ecx, ecx
mov dword [esi + 0x30], eax
je 0x416480
mov eax, ecx
xor ebx, ebx
mov edi, ecx
add eax, ecx
setae al
add edi, ecx
jb 0x418dcc
mov bl, al
add ebx, ebx
test edi, edi
js 0x418e08
je 0x416487
push ebx
push edi
mov dword [esi + 4], ecx
call fcn.00402f90
mov ecx, dword [esi + 4]
add esp, 8
mov edx, eax
mov eax, edx
test edx, edx
jne 0x416493
jmp 0x418e1c
mov eax, 2
jmp 0x416493
mov edx, ebx
mov eax, edx
test edx, edx
je 0x418e1c
lea edx, [ecx + ecx]
push edx
push dword [esi + 0x30]
mov ebx, eax
push eax
mov edi, ecx
call fcn.0042b6b0
add esp, 0xc
movq xmm0, qword [esi + 0xe4]
mov eax, dword [esi + 0xec]
mov edx, dword [esi + 8]
movq qword [esi + 0x148], xmm0
mov dword [esi + 0x150], eax
mov dword [esi + 0x154], ebx
mov dword [esi + 0x158], edi
mov dword [esi + 0x15c], edi
mov ebx, dword [edx + 8]
mov ecx, dword [edx]
test ebx, ebx
je 0x416510
mov dword [esi + 0x30], ecx
js 0x418df0
push 1
push ebx
call fcn.00402f90
add esp, 8
mov ecx, dword [esi + 0x30]
mov edi, eax
test eax, eax
jne 0x416515
jmp 0x418e35
mov edi, 1
push ebx
push ecx
push edi
call fcn.0042b6b0
add esp, 0xc
lea eax, [esi + 0xe4]
mov dword [esi + 0xe4], edi
mov dword [esi + 0xe8], ebx
mov dword [esi + 0xec], ebx
mov byte [esi + 0x72], 0
mov dword [esi + 0x558], 2
lea ecx, [esi + 0x40]
lea edx, [esi + 0x88]
push eax
lea eax, [esi + 0x148]
push eax
call fcn.00405e90
add esp, 8
mov eax, dword [esi + 0x40]
test eax, eax
je 0x416260
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x416260
push 1
push ecx
push eax
call fcn.00402fa0
add esp, 0xc
jmp 0x416260
mov dword [esi + 0xe4], 0
mov dword [esi + 0xe8], eax
lea eax, [esi + 0x1c]
mov dword [esi + 0xec], edx
lea ecx, [esi + 0x148]
lea edx, [esi + 0xe4]
push eax
call fcn.00407f70
add esp, 4
jmp 0x4166b5
xor ecx, ecx
lea edi, [edx + edx*2]
test eax, eax
movsd xmm0, qword [ecx + edi*8 + 0x14]
mov dword [esi + 4], edi
movsd qword [esi + 0xf4], xmm0
movsd xmm0, qword [ecx + edi*8 + 4]
movsd xmm1, qword [ecx + edi*8 + 0xc]
movsd qword [esi + 0xe4], xmm0
movsd xmm0, qword [esi + 0x50]
movsd qword [esi + 0xec], xmm1
movsd qword [ecx + edi*8 + 0x14], xmm0
movsd xmm0, qword [esi + 0x40]
movsd xmm1, qword [esi + 0x48]
movsd qword [ecx + edi*8 + 0xc], xmm1
movsd qword [ecx + edi*8 + 4], xmm0
mov ebx, dword [ecx + edi*4 + 0x114]
lea edi, [esi + 0xfc]
mov dword [edi + 8], ebx
mov ebx, edi
mov edi, dword [esi + 4]
movsd xmm0, qword [ecx + edi*4 + 0x10c]
movsd qword [ebx], xmm0
lea ebx, [esi + 0x58]
movq xmm0, qword [ebx]
movq qword [ecx + edi*4 + 0x10c], xmm0
mov ebx, dword [ebx + 8]
mov dword [ecx + edi*4 + 0x114], ebx
je 0x416669
dec eax
je 0x416669
mov ecx, dword [ecx + edx*4 + 0x198]
nop word cs:[eax + eax]
mov ecx, dword [ecx + 0x194]
dec eax
jne 0x416660
movsd xmm1, qword [esi + 0xf4]
mov eax, dword [esi + 0x104]
movq xmm0, qword [esi + 0xfc]
movsd xmm2, qword [esi + 0xe4]
movsd qword [esi + 0x158], xmm1
movsd xmm1, qword [esi + 0xec]
mov dword [esi + 0x168], eax
movq qword [esi + 0x160], xmm0
movsd qword [esi + 0x148], xmm2
movsd qword [esi + 0x150], xmm1
movsd xmm1, qword [esi + 0x158]
mov eax, dword [esi + 0x168]
movq xmm0, qword [esi + 0x160]
movsd xmm2, qword [esi + 0x148]
dec dword [esi + 0x90]
mov ecx, dword [esi + 0x30]
cmp byte [esi + 0x1c], 0
mov edx, dword [esi + 8]
movsd qword [esi + 0xf4], xmm1
movsd xmm1, qword [esi + 0x150]
mov dword [esi + 0x104], eax
movq qword [esi + 0xfc], xmm0
movsd qword [esi + 0xe4], xmm2
movsd qword [esi + 0xec], xmm1
je 0x416744
test edx, edx
je 0x418ea8
mov eax, dword [ecx + 0x194]
dec edx
mov dword [esi + 0x8c], eax
mov dword [esi + 0x88], edx
mov dword [eax], 0
push 4
push 0x1c4
push ecx
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 0xe4]
test eax, eax
je 0x416260
mov edi, dword [esi + 0xfc]
mov ecx, dword [esi + 0xe8]
mov edx, dword [esi + 0xf0]
mov ebx, dword [esi + 0xf4]
mov dword [esi + 0x30], edi
mov edi, dword [esi + 0x100]
test ecx, ecx
mov dword [esi + 8], edx
je 0x416786
push 1
push ecx
push eax
call fcn.00402fa0
add esp, 0xc
test ebx, ebx
je 0x41679c
add ebx, ebx
je 0x41679c
push 2
push ebx
push dword [esi + 8]
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 0x30]
test eax, eax
je 0x416260
test edi, edi
je 0x416260
push 1
push edi
push eax
call fcn.00402fa0
add esp, 0xc
jmp 0x41624b
movq xmm0, qword [esi + 0x88]
mov eax, dword [esi + 0x90]
mov dl, byte [esi + 0x10]
movq qword [esi + 0x12c], xmm0
mov dword [esi + 0x134], eax
mov dword [esi + 0x128], 1
test dl, dl
mov dword [esi + 0xec], 0
mov dword [esi + 0xe8], 0
mov dword [esi + 0xf4], 0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xfc], 0
mov dword [esi + 0xf8], 0
mov dword [esi + 0x104], 0
mov dword [esi + 0x100], 0
mov dword [esi + 0x10c], 0
mov dword [esi + 0x108], 0
mov dword [esi + 0x114], 0
mov dword [esi + 0x118], 0
mov dword [esi + 0x11c], 0xffffffff
mov dword [esi + 0x120], 0xffffffff
mov dword [esi + 0x124], 0xffffffff
mov dword [esi + 0xe4], 0x44
mov dword [esi + 0x110], 0x100
je 0x4168b1
mov dword [esi + 4], 0
mov eax, dword [esi + 0x74]
mov edx, dword [eax + 8]
test edx, edx
jne 0x4169d2
jmp 0x416a28
mov byte [esi + 3], 1
mov dword [esi + 0x558], 9
lea ecx, [esi + 0x40]
mov edx, str.PATHlock_count_overflow_in_reentrant_mutexlibrary_std_src_sys_common_remutex.rs
push 4
call fcn.00415c70
add esp, 4
mov eax, dword [esi + 0x4c]
xor edi, edi
mov dword [esi + 4], eax
mov eax, dword [esi + 0x130]
test eax, eax
je 0x416baa
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 0x12c]
mov dword [esi + 0x10], ecx
mov dword [esi + 0xc], edx
mov dword [esi + 0x30], eax
movzx eax, word [eax + 0x192]
mov ebx, 0x108
mov edi, 0xffffffff
mov dword [esi + 0x14], eax
neg eax
mov dword [esi + 8], eax
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [esi + 8]
add eax, edi
cmp eax, 0xffffffff
je 0x416960
push 1
mov eax, dword [esi + 0x30]
push dword [eax + ebx*2 - 0x1f8]
push dword [eax + ebx*2 - 0x200]
push dword [esi + 0x10]
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_CompareStringOrdinal]
add ebx, 0xc
inc edi
cmp eax, 3
je 0x416920
cmp eax, 1
jne 0x416981
jmp 0x416963
mov edi, dword [esi + 0x14]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x30]
sub ecx, 1
jb 0x4175ab
mov eax, dword [eax + edi*4 + 0x194]
mov dword [esi + 0xc], ecx
jmp 0x4168f6
cmp eax, 2
jne 0x418d48
mov eax, dword [esi + 0x30]
mov edi, dword [eax + ebx - 8]
mov eax, dword [eax + ebx]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x44]
test eax, eax
je 0x4169ac
push 1
push eax
push dword [esi + 0x40]
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 0x50]
test eax, eax
je 0x4169c5
add eax, eax
je 0x4169c5
push 2
push eax
push dword [esi + 4]
call fcn.00402fa0
add esp, 0xc
mov dword [esi + 4], edi
mov eax, dword [esi + 0x74]
mov edx, dword [eax + 8]
test edx, edx
je 0x416a28
mov eax, dword [esi + 0x74]
mov ecx, 0x414620
cmp edx, 4
mov edi, dword [eax]
jb 0x4169fe
cmp dword [edi], 0x5c3f5c5c
mov eax, 0x414640
mov ecx, 0x414620
mov dword [esi + 0x558], 9
cmove ecx, eax
movzx eax, byte [edx + edi - 1]
mov dword [esi + 0x10], edx
mov dword [esi + 8], edi
mov byte [esi + 3], 1
mov dword [esi + 0x558], 9
push eax
call ecx
add esp, 4
mov edi, dword [esi + 0x10]
test al, al
je 0x416b21
mov dword [esi + 0xb4], str.program_path_has_no_file_name
mov dword [esi + 0xb0], 2
mov dword [esi + 0xac], 1
cmp dword [esi + 0xac], 0
mov ebx, dword [esi + 0xb0]
mov eax, dword [esi + 0xb4]
je 0x416a7f
mov ecx, dword [esi + 0xa0]
cmp dword [esi + 0x128], 0
mov dword [ecx + 4], ebx
mov dword [ecx + 8], eax
mov dword [ecx], 1
jne 0x417284
jmp 0x4172ee
mov ecx, dword [esi + 0xb8]
mov dword [esi + 0x13c], eax
mov dword [esi + 0x138], ebx
mov dword [esi + 0x30], ebx
mov eax, ecx
mov dword [esi + 0x140], ecx
mov dword [esi + 4], ecx
sub eax, 5
jae 0x416bba
mov eax, dword [esi + 0x74]
mov dword [esi + 0x40], 2
mov dword [esi + 0x44], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x558], 0x19
mov dword [esi + 0xa8], 0
xor edx, edx
mov ecx, dword [eax + 0xc]
mov edi, dword [eax + 0x14]
mov al, byte [eax + 0x51]
mov dword [esi + 8], ecx
mov dword [esi + 0x2c], edi
mov byte [esi + 0x10], al
lea ecx, [esi + 0x40]
call fcn.004087b0
mov eax, dword [esi + 0x40]
mov edi, dword [esi + 0x48]
mov edx, dword [esi + 4]
mov word [eax + edi*2], 0x22
inc edi
test edx, edx
mov dword [esi + 0x48], edi
je 0x416c70
mov ecx, dword [esi + 0x30]
xor eax, eax
cmp word [ecx + edx*2 - 2], 0
lea ebx, [edx - 1]
cmove eax, ecx
jmp 0x416c75
mov ebx, dword [esi + 8]
xor ecx, ecx
cmp edi, 4
mov edx, 0
jb 0x417319
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 0x417317
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 0x417317
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 0x417317
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 0x417319
mov eax, dword [esi + 0x44]
test eax, eax
jne 0x41699e
jmp 0x4169ac
mov edx, dword [esi + 4]
xor ecx, ecx
sub edx, eax
lea eax, [ebx + eax*2]
cmovb eax, ecx
cmp edx, 5
sete cl
test eax, eax
je 0x416aa8
test cl, cl
je 0x416aa8
cmp word [eax], 0x2e
jne 0x416aa8
cmp word [eax + 8], 0
jne 0x416aa8
movzx ecx, word [eax + 2]
lea edx, [ecx - 0x42]
cmp dx, 0x21
ja 0x416aa8
mov edi, dword [esi + 0x94]
movzx edx, dx
add edi, dword [edx*4 + 0x4196f0]
jmp edi
mov ecx, dword [esi + 0x30]
xor eax, eax
test eax, eax
cmovne ecx, eax
cmove ebx, edx
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x44]
mov dword [esi + 4], ebx
mov eax, ecx
sub eax, edi
cmp eax, ebx
jae 0x416caa
lea ecx, [esi + 0x40]
mov edx, edi
push ebx
call fcn.00437840
add esp, 4
mov eax, dword [esi + 0x44]
mov edi, dword [esi + 0x48]
mov ebx, dword [esi + 4]
mov dword [esi + 0xc], eax
jmp 0x416cad
mov dword [esi + 0xc], ecx
lea eax, [ebx + ebx]
mov ebx, dword [esi + 0x40]
lea ecx, [ebx + edi*2]
push eax
push dword [esi + 0x30]
push ecx
call fcn.0042b6b0
add esp, 0xc
add edi, dword [esi + 4]
mov edx, dword [esi + 0xc]
cmp edi, edx
mov dword [esi + 0x48], edi
jne 0x416cde
lea ecx, [esi + 0x40]
call fcn.004087b0
mov ebx, dword [esi + 0x40]
mov edi, dword [esi + 0x48]
mov ecx, dword [esi + 0x2c]
mov al, byte [esi + 0x10]
mov edx, dword [esi + 8]
movdqa xmm0, xmmword [0x439860]
mov word [ebx + edi*2], 0x22
inc edi
mov dword [esi + 0x48], edi
xor al, 1
shl ecx, 4
add ecx, edx
movzx eax, al
mov dword [esi + 0x6c], eax
mov dword [esi + 0x2c], ecx
cmp edx, ecx
je 0x417610
cmp edi, dword [esi + 0x44]
jne 0x416d3b
mov dword [esi + 8], edx
lea ecx, [esi + 0x40]
mov edx, edi
mov dword [esi + 0x558], 0x19
call fcn.004087b0
mov edi, dword [esi + 0x48]
movdqa xmm0, xmmword [0x439860]
mov edx, dword [esi + 8]
lea eax, [edx + 0x10]
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0x40]
mov word [eax + edi*2], 0x20
inc edi
mov eax, 2
mov dword [esi + 0x48], edi
mov dword [esi + 0x94], edi
cmp dword [edx], 0
cmove eax, dword [esi + 0x6c]
mov dword [esi + 4], eax
mov eax, edx
mov edx, dword [edx + 4]
mov eax, dword [eax + 0xc]
mov dword [esi + 0x10], edx
mov dword [esi + 8], eax
add eax, edx
mov dword [esi + 0x14], eax
xor eax, eax
jmp 0x416d8b
xor eax, eax
test bx, bx
je 0x417222
mov bx, 1
test ax, ax
jne 0x416d80
cmp edx, dword [esi + 0x14]
je 0x416e43
movzx eax, byte [edx]
movzx ecx, al
test al, al
js 0x416dae
inc edx
xor eax, eax
mov ebx, ecx
jmp 0x416d82
movzx edi, byte [edx + 1]
and ecx, 0x1f
and edi, 0x3f
cmp al, 0xdf
jbe 0x416dfb
mov dword [esi + 0x30], edx
movzx edx, byte [edx + 2]
shl edi, 6
and edx, 0x3f
or edx, edi
cmp al, 0xf0
mov edi, edx
jb 0x416e13
mov edx, dword [esi + 0x30]
and ecx, 7
shl edi, 6
shl ecx, 0x12
movzx eax, byte [edx + 3]
add edx, 4
and eax, 0x3f
or eax, edi
or ecx, eax
mov edi, dword [esi + 0x94]
cmp ecx, 0xffff
jbe 0x416da8
jmp 0x416e30
shl ecx, 6
add edx, 2
or ecx, edi
mov edi, dword [esi + 0x94]
cmp ecx, 0xffff
ja 0x416e30
jmp 0x416da8
mov edx, dword [esi + 0x30]
shl ecx, 0xc
or ecx, edi
add edx, 3
mov edi, dword [esi + 0x94]
cmp ecx, 0xffff
jbe 0x416da8
and ecx, 0x3ff
or ecx, 0xdc00
mov eax, ecx
jmp 0x416d82
mov eax, dword [esi + 4]
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 8]
test al, al
je 0x416e90
cmp al, 2
jne 0x416e67
mov dword [esi + 0xc], 0
mov dword [esi + 0xa4], 0
jmp 0x416ed1
xor eax, eax
nop dword [eax]
cmp ebx, eax
je 0x416e85
movzx ecx, byte [edx + eax]
cmp cl, 9
je 0x416e90
inc eax
cmp cl, 0x20
jne 0x416e70
jmp 0x416e90
test ebx, ebx
je 0x416e90
mov al, 1
mov dword [esi + 0xc], eax
jmp 0x416e5b
cmp edi, dword [esi + 0x44]
jne 0x416eb7
lea ecx, [esi + 0x40]
mov edx, edi
mov dword [esi + 0x558], 0x19
call fcn.004087b0
mov edi, dword [esi + 0x48]
movdqa xmm0, xmmword [0x439860]
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x40]
mov word [eax + edi*2], 0x22
mov al, 1
inc edi
mov dword [esi + 0xc], eax
mov al, 1
mov dword [esi + 0x48], edi
mov dword [esi + 0xa4], eax
xor ecx, ecx
xor ebx, ebx
jmp 0x416eee
mov eax, dword [esi + 0x40]
mov word [eax + edi*2], cx
inc edi
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x48], edi
test cx, cx
je 0x416f40
mov dword [esi + 0x30], 0
cmp byte [esi + 0xc], 0
jne 0x417030
cmp edi, dword [esi + 0x44]
jne 0x416ee0
mov dword [esi + 8], ecx
mov dword [esi + 0x10], edx
lea ecx, [esi + 0x40]
mov edx, edi
mov dword [esi + 4], ebx
mov dword [esi + 0x558], 0x19
call fcn.004087b0
mov edi, dword [esi + 0x48]
movdqa xmm0, xmmword [0x439860]
mov edx, dword [esi + 0x10]
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 8]
jmp 0x416ee0
cmp edx, dword [esi + 0x14]
je 0x41711c
mov cl, byte [edx]
movzx eax, cl
test cl, cl
js 0x416f68
inc edx
mov ecx, eax
mov dword [esi + 0x30], 0
cmp byte [esi + 0xc], 0
jne 0x417030
jmp 0x416f04
mov dword [esi + 4], ebx
mov ebx, edx
movzx edx, byte [edx + 1]
and eax, 0x1f
and edx, 0x3f
cmp cl, 0xdf
jbe 0x416fbe
mov dword [esi + 8], eax
movzx eax, byte [ebx + 2]
shl edx, 6
and eax, 0x3f
or eax, edx
cmp cl, 0xf0
jb 0x416fdb
movzx ecx, byte [ebx + 3]
mov edx, dword [esi + 8]
shl eax, 6
add ebx, 4
and edx, 7
and ecx, 0x3f
shl edx, 0x12
or ecx, eax
or edx, ecx
mov ecx, edx
mov edx, ebx
mov ebx, dword [esi + 4]
cmp ecx, 0xffff
ja 0x416ff7
jmp 0x416ef3
shl eax, 6
add ebx, 2
or eax, edx
mov edx, ebx
mov ecx, eax
mov ebx, dword [esi + 4]
cmp ecx, 0xffff
jbe 0x416ef3
jmp 0x416ff7
mov ecx, dword [esi + 8]
add ebx, 3
shl ecx, 0xc
or ecx, eax
mov edx, ebx
mov ebx, dword [esi + 4]
cmp ecx, 0xffff
jbe 0x416ef3
add ecx, 0xffff0000
mov eax, ecx
and ecx, 0x3ff
shr eax, 0xa
or ecx, 0xdc00
mov dword [esi + 0x30], ecx
or eax, 0xd800
mov ecx, eax
cmp byte [esi + 0xc], 0
je 0x416f04
nop word cs:[eax + eax]
nop dword [eax]
cmp cx, 0x22
je 0x41704f
cmp cx, 0x5c
jne 0x41710c
inc ebx
cmp edi, dword [esi + 0x44]
jne 0x416ee0
jmp 0x416f09
mov eax, ebx
mov dword [esi + 8], ecx
mov dword [esi + 0x10], edx
inc eax
je 0x418e53
mov ecx, dword [esi + 0x44]
sub ecx, edi
cmp ecx, eax
jae 0x417090
mov dword [esi + 4], ebx
mov dword [esi + 0x558], 0x19
lea ecx, [esi + 0x40]
mov edx, edi
push eax
call fcn.00437840
add esp, 4
mov edi, dword [esi + 0x48]
movdqa xmm0, xmmword [0x439860]
mov ebx, dword [esi + 4]
mov edx, dword [esi + 0x40]
test ebx, ebx
lea eax, [edx + edi*2]
je 0x4170ed
xor ecx, ecx
cmp ebx, 0x10
jb 0x4170db
mov ecx, ebx
mov dword [esi + 0x94], edi
lea edx, [edx + edi*2 + 0x10]
and ecx, 0xfffffff0
lea eax, [eax + ecx*2]
mov edi, ecx
nop word cs:[eax + eax]
nop
movdqu xmmword [edx - 0x10], xmm0
movdqu xmmword [edx], xmm0
add edx, 0x20
add edi, 0xfffffff0
jne 0x4170c0
mov edi, dword [esi + 0x94]
cmp ebx, ecx
je 0x4170eb
mov edx, ebx
sub edx, ecx
nop
mov word [eax], 0x5c
add eax, 2
dec edx
jne 0x4170e0
add edi, ebx
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 8]
inc edi
mov word [eax], 0x5c
xor ebx, ebx
mov dword [esi + 0x48], edi
cmp edi, dword [esi + 0x44]
jne 0x416ee0
jmp 0x416f09
xor ebx, ebx
cmp edi, dword [esi + 0x44]
je 0x416f09
jmp 0x416ee0
cmp byte [esi + 0xa4], 0
mov edx, dword [esi + 0x9c]
mov ecx, dword [esi + 0x2c]
je 0x416d09
mov edx, dword [esi + 0x44]
mov eax, edx
sub eax, edi
cmp eax, ebx
jae 0x41717c
mov dword [esi + 0x558], 0x19
lea ecx, [esi + 0x40]
mov edx, edi
mov dword [esi + 4], ebx
push ebx
call fcn.00437840
add esp, 4
mov eax, dword [esi + 0x40]
mov edi, dword [esi + 0x48]
movdqa xmm0, xmmword [0x439860]
mov dword [esi + 0x30], eax
lea edx, [eax + edi*2]
mov ecx, dword [esi + 4]
xor ebx, ebx
cmp ecx, 0x10
jae 0x417196
mov eax, ecx
mov ecx, edx
jmp 0x4171cb
mov eax, dword [esi + 0x40]
test ebx, ebx
je 0x4171e3
lea edx, [eax + edi*2]
mov dword [esi + 4], ebx
mov dword [esi + 0x30], eax
mov ecx, dword [esi + 4]
xor ebx, ebx
cmp ecx, 0x10
jb 0x417176
mov ebx, ecx
mov dword [esi + 0x94], edi
mov eax, ecx
and ebx, 0xfffffff0
lea ecx, [edx + ebx*2]
add edx, 0x10
mov edi, ebx
nop dword [eax + eax]
movdqu xmmword [edx - 0x10], xmm0
movdqu xmmword [edx], xmm0
add edx, 0x20
add edi, 0xfffffff0
jne 0x4171b0
mov edi, dword [esi + 0x94]
cmp eax, ebx
je 0x4171db
mov edx, eax
sub edx, ebx
nop
mov word [ecx], 0x5c
add ecx, 2
dec edx
jne 0x4171d0
add edi, eax
mov edx, dword [esi + 0x44]
mov eax, dword [esi + 0x30]
cmp edi, edx
mov dword [esi + 0x48], edi
jne 0x41720a
lea ecx, [esi + 0x40]
mov dword [esi + 0x558], 0x19
call fcn.004087b0
mov eax, dword [esi + 0x40]
mov edi, dword [esi + 0x48]
movdqa xmm0, xmmword [0x439860]
mov edx, dword [esi + 0x9c]
mov ecx, dword [esi + 0x2c]
mov word [eax + edi*2], 0x22
inc edi
mov dword [esi + 0x48], edi
jmp 0x416d09
mov eax, dword [esi + 0x44]
test eax, eax
je 0x41723b
add eax, eax
je 0x41723b
push 2
push eax
push dword [esi + 0x40]
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 0xa0]
xor ebx, ebx
mov dword [eax + 8], 0x43bad4
mov dword [eax + 4], 2
mov dword [eax], 1
mov eax, dword [esi + 0x13c]
test eax, eax
je 0x417276
add eax, eax
je 0x417276
push 2
push eax
push dword [esi + 0x138]
call fcn.00402fa0
add esp, 0xc
cmp dword [esi + 0x128], 0
sete al
or bl, al
jne 0x4172ee
mov ecx, dword [esi + 0x130]
test ecx, ecx
je 0x4172c0
mov edx, dword [esi + 0x12c]
mov eax, dword [esi + 0x134]
mov dword [esi + 0x558], 0
mov dword [esi + 0x14c], edx
mov dword [esi + 0x150], ecx
mov dword [esi + 0x15c], edx
mov dword [esi + 0x160], ecx
xor ecx, ecx
jmp 0x4172c7
xor eax, eax
mov ecx, 2
mov dword [esi + 0x148], ecx
mov dword [esi + 0x158], ecx
lea ecx, [esi + 0x148]
mov dword [esi + 0x168], eax
mov dword [esi + 0x558], 0
call fcn.00403fc0
cmp dword [esi + 0xdc], 3
jb 0x417303
push dword [esi + 0xe0]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0x550]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor edx, edx
lea eax, [ebx + edi]
mov dword [esi + 0x30], eax
nop
cmp edi, ecx
je 0x41735d
movzx eax, byte [ebx + ecx]
cmp al, 0x2f
je 0x417331
inc ecx
cmp al, 0x5c
jne 0x417320
test dl, dl
je 0x41743e
mov byte [esi + 3], 1
mov dword [esi + 0x558], 9
lea ecx, [esi + 0xac]
mov edx, ebx
push edi
call fcn.004149e0
add esp, 4
jmp 0x416a46
mov ecx, ebx
xor ebx, ebx
jmp 0x41737b
xor ebx, ebx
test dx, dx
je 0x41742f
mov dx, 1
test bx, bx
jne 0x417370
cmp ecx, dword [esi + 0x30]
je 0x41757f
movzx eax, byte [ecx]
movzx edi, al
test al, al
js 0x4173a9
inc ecx
xor ebx, ebx
mov edx, edi
mov edi, dword [esi + 0x10]
test dx, dx
jne 0x41737b
jmp 0x41742f
movzx ebx, byte [ecx + 1]
and edi, 0x1f
and ebx, 0x3f
cmp al, 0xdf
jbe 0x4173f0
mov dword [esi + 0xc], ecx
movzx ecx, byte [ecx + 2]
shl ebx, 6
and ecx, 0x3f
or ecx, ebx
cmp al, 0xf0
mov ebx, ecx
jb 0x417402
mov ecx, dword [esi + 0xc]
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 0x417398
jmp 0x417415
shl edi, 6
add ecx, 2
or edi, ebx
cmp edi, 0xffff
ja 0x417415
jmp 0x417398
mov ecx, dword [esi + 0xc]
shl edi, 0xc
or edi, ebx
add ecx, 3
cmp edi, 0xffff
jbe 0x417398
and edi, 0x3ff
or edi, 0xdc00
mov ebx, edi
mov edi, dword [esi + 0x10]
test dx, dx
jne 0x41737b
mov dword [esi + 0xb4], str.nul_byte_found_in_provided_data
jmp 0x416a32
test edi, edi
js 0x418f88
push 1
push edi
call fcn.00402f90
add esp, 8
test eax, eax
je 0x418f9d
mov dword [esi + 0x148], eax
mov dword [esi + 0x14c], edi
mov dword [esi + 0x150], 0
mov dword [esi + 0x558], 0x17
lea ecx, [esi + 0x148]
mov edx, ebx
push edi
call fcn.00411390
add esp, 4
mov eax, dword [esi + 0x150]
movq xmm0, qword [esi + 0x148]
mov dword [esi + 0x558], 0x16
lea ecx, [esi + 0x148]
mov edx, str..exeprogram_not_found
mov dword [esi + 0x48], eax
movq qword [esi + 0x40], xmm0
mov dword [esi + 0x150], eax
movq qword [esi + 0x148], xmm0
push 4
call fcn.00411390
add esp, 4
mov eax, dword [esi + 0x150]
movq xmm0, qword [esi + 0x148]
mov byte [esi + 0x9a], 1
mov dword [esi + 0x558], 0x15
lea ecx, [esi + 0x148]
mov dword [esi + 0x48], eax
movq qword [esi + 0x40], xmm0
mov dword [esi + 8], eax
mov edx, dword [esi + 0x40]
mov dword [esi + 0x30], edx
push eax
call fcn.00419780
add esp, 4
cmp dword [esi + 0x148], 0
je 0x417540
mov eax, dword [esi + 0x150]
movq xmm0, qword [esi + 0x148]
mov dword [esi + 0xb8], eax
movq qword [esi + 0xb0], xmm0
mov dword [esi + 0xac], 0
jmp 0x4181fe
mov dword [esi + 0x558], 0x14
push dword [esi + 8]
push dword [esi + 0x30]
call fcn.0040e890
add esp, 8
test eax, eax
je 0x41774f
cmp edx, 2
jne 0x4175bd
movzx ecx, word [eax]
cmp ecx, 0x2e2e
jne 0x4175bd
mov edi, dword [esi + 8]
mov ebx, 2
xor ecx, ecx
jmp 0x4181bc
mov ecx, dword [esi + 8]
cmp edi, 7
ja 0x41772a
mov edx, dword [esi + 0x14]
xor eax, eax
cmp byte [ecx + eax], 0x2e
je 0x417766
inc eax
cmp edi, eax
jne 0x417590
mov dword [esi + 0x6c], 0
jmp 0x41776d
xor edi, edi
mov eax, dword [esi + 0x44]
test eax, eax
jne 0x41699e
jmp 0x4169ac
xor edi, edi
mov dword [esi + 4], eax
mov ecx, eax
mov eax, edx
nop word cs:[eax + eax]
cmp eax, edi
je 0x417757
cmp byte [ecx + eax - 1], 0x2e
lea ebx, [ecx - 1]
mov edx, edi
lea edi, [edi + 1]
mov ecx, ebx
jne 0x4175d0
mov ecx, eax
sub ecx, edi
mov dword [esi + 0x10], ecx
inc ecx
cmp eax, ecx
jb 0x418fc9
cmp eax, edi
jne 0x4181af
mov ebx, eax
mov edi, dword [esi + 8]
mov eax, dword [esi + 4]
xor ecx, ecx
jmp 0x4181bc
cmp byte [esi + 0xa8], 0
je 0x417642
cmp edi, dword [esi + 0x44]
jne 0x417635
lea ecx, [esi + 0x40]
mov edx, edi
mov dword [esi + 0x558], 0x19
call fcn.004087b0
mov edi, dword [esi + 0x48]
mov eax, dword [esi + 0x40]
mov word [eax + edi*2], 0x22
inc edi
mov dword [esi + 0x48], edi
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x40]
cmp edi, ecx
mov dword [esi + 0xd4], ecx
mov dword [esi + 0xd0], eax
mov dword [esi + 0xd8], edi
jne 0x417685
lea ecx, [esi + 0xd0]
mov edx, edi
mov byte [esi + 0x1b], 1
mov dword [esi + 0x558], 0x1a
call fcn.004087b0
mov eax, dword [esi + 0xd0]
mov edi, dword [esi + 0xd8]
mov ecx, dword [esi + 0x74]
mov word [eax + edi*2], 0
inc edi
mov eax, 0x400
mov edx, 0x608
mov ebx, 0
mov dword [esi + 0x10], 2
mov dword [esi + 0x14], 0
mov dword [esi + 0xd8], edi
cmp byte [ecx + 0x50], 0
cmove edx, eax
xor edi, edi
mov eax, ecx
or edx, dword [ecx + 0x34]
cmp dword [esi + 0x128], 1
mov ecx, 2
mov dword [esi + 0x94], edx
mov edx, 0
jne 0x4187b1
mov ebx, dword [esi + 0x134]
mov edx, dword [esi + 0x12c]
mov edi, dword [esi + 0x130]
mov dword [esi + 0x1c], 2
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
test ebx, ebx
mov dword [esi + 0x88], edx
mov dword [esi + 0x8c], edi
mov dword [esi + 0x90], ebx
je 0x4182db
xor eax, eax
mov ecx, 2
jmp 0x418315
mov byte [esi + 3], 1
mov dword [esi + 0x558], 9
push edi
push ecx
push 0x2e
call fcn.00426590
add esp, 0xc
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 4]
mov edx, dword [esi + 0x14]
jmp 0x417770
mov edi, dword [esi + 8]
jmp 0x4181e2
mov ecx, dword [esi + 4]
mov edi, dword [esi + 8]
mov edx, eax
xor eax, eax
jmp 0x4181bc
mov dword [esi + 0x6c], 1
mov eax, dword [esi + 4]
test eax, eax
mov dword [esi + 0x558], 9
je 0x417aea
add edx, eax
mov dword [esi + 0x148], eax
lea eax, [esi + 0x148]
mov byte [esi + 3], 1
lea ecx, [esi + 0x1c]
mov dword [esi + 0x14c], edx
mov word [esi + 0x150], 0
mov byte [esi + 0x154], 1
push eax
push ecx
call fcn.004140e0
add esp, 8
mov eax, dword [esi + 0x1c]
mov ebx, dword [esi + 8]
test eax, eax
je 0x417ae0
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x20]
test edx, edx
jne 0x417a4a
test ecx, ecx
je 0x4177e3
push 1
push ecx
push eax
call fcn.00402fa0
add esp, 0xc
movzx eax, byte [esi + 0x154]
mov byte [esi + 0x154], 0
mov ecx, 2
xor edx, edx
mov dword [esi + 0x78], 2
mov dword [esi + 0x7c], 0
mov dword [esi + 0x80], 0
mov dword [esi + 0x14], 0
mov byte [esi + 0x9c], al
mov eax, dword [esi + 0x14c]
mov dword [esi + 4], eax
movzx eax, word [esi + 0x150]
test ax, ax
je 0x41785d
nop word cs:[eax + eax]
nop dword [eax]
mov word [esi + 0x150], 0
xor edi, edi
cmp ax, 0x22
jne 0x417890
not dl
mov eax, edi
and dl, 1
test ax, ax
jne 0x417840
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x148]
cmp ecx, dword [esi + 4]
je 0x4179d3
lea eax, [ecx + 1]
mov dword [esi + 0x148], eax
movzx ebx, byte [ecx]
movzx eax, bl
test bl, bl
js 0x417900
mov ebx, dword [esi + 8]
mov ecx, dword [esi + 0x30]
xor edi, edi
cmp ax, 0x22
je 0x417851
cmp ax, 0x3b
jne 0x41789f
test dl, 1
je 0x4179cc
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x30], edi
cmp eax, dword [esi + 0x7c]
jne 0x4178d3
mov dword [esi + 0x2c], edx
lea ecx, [esi + 0x78]
mov edx, eax
mov dword [esi + 0x558], 0x13
call fcn.004087b0
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x80]
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0x2c]
mov edi, dword [esi + 0xc]
mov word [ecx + eax*2], di
inc eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x80], eax
mov eax, dword [esi + 0x30]
test ax, ax
je 0x41785d
jmp 0x417840
and eax, 0x1f
mov edi, eax
lea eax, [ecx + 2]
mov dword [esi + 0x148], eax
movzx eax, byte [ecx + 1]
and eax, 0x3f
cmp bl, 0xdf
jbe 0x417960
mov dword [esi + 0xc], edi
lea edi, [ecx + 3]
shl eax, 6
mov dword [esi + 0x148], edi
movzx edi, byte [ecx + 2]
and edi, 0x3f
or edi, eax
cmp bl, 0xf0
jb 0x41797a
lea eax, [ecx + 4]
shl edi, 6
mov dword [esi + 0x148], eax
movzx eax, byte [ecx + 3]
mov ecx, dword [esi + 0xc]
and ecx, 7
and eax, 0x3f
shl ecx, 0x12
or eax, edi
or ecx, eax
mov eax, ecx
jmp 0x417982
mov ebx, dword [esi + 8]
mov ecx, dword [esi + 0x30]
shl edi, 6
or edi, eax
mov eax, edi
cmp eax, 0xffff
jbe 0x417849
jmp 0x417993
mov eax, dword [esi + 0xc]
shl eax, 0xc
or eax, edi
mov ebx, dword [esi + 8]
mov ecx, dword [esi + 0x30]
cmp eax, 0xffff
jbe 0x417849
add eax, 0xffff0000
mov edi, eax
and eax, 0x3ff
or eax, 0xdc00
shr edi, 0xa
or edi, 0xd800
mov ebx, eax
mov word [esi + 0x150], ax
mov eax, edi
mov edi, ebx
mov ebx, dword [esi + 8]
cmp ax, 0x22
je 0x417851
jmp 0x417890
mov byte [esi + 0x154], 1
cmp byte [esi + 0x9c], 0
mov eax, dword [esi + 0x14]
jne 0x4179ef
test eax, eax
jne 0x4179ef
mov ecx, dword [esi + 0x78]
mov dword [esi + 0x1c], 0
jmp 0x417a23
mov ecx, dword [esi + 0x78]
mov dword [esi + 0x558], 0x13
push eax
mov dword [esi + 0x30], ecx
push ecx
lea eax, [esi + 0x40]
push eax
call fcn.0040c490
add esp, 0xc
mov eax, dword [esi + 0x48]
movq xmm0, qword [esi + 0x40]
mov ebx, dword [esi + 8]
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x24], eax
movq qword [esi + 0x1c], xmm0
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x417a3a
add eax, eax
je 0x417a3a
push 2
push eax
push ecx
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x4177c5
jmp 0x417ae0
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], ecx
mov dword [esi + 0x48], edx
mov dword [esi + 0x558], 0x12
push dword [esi + 0x10]
push ebx
lea eax, [esi + 0x40]
push eax
call fcn.0040d790
add esp, 0xc
cmp dword [esi + 0x6c], 1
je 0x417a86
push 3
push str.exeNULcouldnt_generate_random_bytes:
lea eax, [esi + 0x40]
push eax
call fcn.0040e3f0
add esp, 0xc
mov edx, dword [esi + 0x40]
lea ecx, [esi + 0x78]
mov dword [esi + 0x30], edx
push dword [esi + 0x48]
call fcn.00419780
add esp, 4
mov eax, dword [esi + 0x44]
test eax, eax
je 0x417aaf
push 1
push eax
push dword [esi + 0x30]
call fcn.00402fa0
add esp, 0xc
mov edi, dword [esi + 0x78]
test edi, edi
jne 0x417d8c
lea eax, [esi + 0x148]
mov byte [esi + 3], 1
mov dword [esi + 0x558], 9
push eax
lea eax, [esi + 0x1c]
push eax
call fcn.004140e0
add esp, 8
jmp 0x4177b7
mov dword [esi + 0x558], 9
lea ecx, [esi + 0x148]
mov byte [esi + 3], 1
call fcn.00414390
cmp dword [esi + 0x148], 0
je 0x417cce
lea ecx, [esi + 0x148]
mov byte [esi + 3], 1
call fcn.00404b60
push 0x400
push 0
lea eax, [esi + 0x148]
push eax
call fcn.0042bc30
add esp, 0xc
mov edi, 0x200
mov dword [esi + 0x88], 2
mov dword [esi + 0x8c], 0
mov dword [esi + 0x90], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x14], 2
cmp edi, 0x201
jae 0x417b80
jmp 0x417bd0
mov edi, ebx
jbe 0x417c2a
cmp edi, 0x201
jb 0x417bd0
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 0x8c]
mov eax, edi
sub eax, edx
sub ecx, edx
cmp ecx, eax
jae 0x417bbb
mov dword [esi + 4], edi
mov dword [esi + 0x558], 0xe
lea ecx, [esi + 0x88]
push eax
call fcn.00437840
add esp, 4
mov eax, dword [esi + 0x88]
mov edi, dword [esi + 4]
mov dword [esi + 0x14], eax
mov ebx, dword [esi + 0x14]
mov dword [esi + 0x90], edi
mov dword [esi + 0x30], edi
mov dword [esi + 4], edi
jmp 0x417bdd
lea ebx, [esi + 0x148]
mov dword [esi + 4], 0x200
mov dword [esi + 0xc], 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 0x417c04
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x417d96
cmp ebx, edi
jne 0x417b70
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x418ecb
add edi, edi
cmp edi, 0x201
jb 0x417bd0
jmp 0x417b80
mov eax, dword [esi + 4]
mov dword [esi + 0x558], 0xe
cmp ebx, eax
ja 0x418fb8
lea eax, [esi + 0x78]
push ebx
push dword [esi + 0xc]
push eax
call fcn.0040c490
add esp, 0xc
mov dword [esi + 0x558], 0xf
push dword [esi + 0x10]
push dword [esi + 8]
lea eax, [esi + 0x78]
push eax
call fcn.0040d790
add esp, 0xc
cmp dword [esi + 0x6c], 1
je 0x417c84
push 3
push str.exeNULcouldnt_generate_random_bytes:
lea eax, [esi + 0x78]
push eax
call fcn.0040e3f0
add esp, 0xc
mov edx, dword [esi + 0x78]
lea ecx, [esi + 0x1c]
mov dword [esi + 0x30], edx
push dword [esi + 0x80]
call fcn.00419780
add esp, 4
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x417cb0
push 1
push eax
push dword [esi + 0x30]
call fcn.00402fa0
add esp, 0xc
movq xmm0, qword [esi + 0x1c]
mov eax, dword [esi + 0x24]
mov bl, 1
movq qword [esi + 0x44], xmm0
mov dword [esi + 0x4c], eax
mov dword [esi + 0x40], 0
jmp 0x417daf
mov ecx, dword [esi + 0x154]
movq xmm0, qword [esi + 0x14c]
mov byte [esi + 0x9b], 1
mov dword [esi + 0x558], 0x10
movq qword [esi + 0x1c], xmm0
mov dword [esi + 0x24], ecx
mov dword [esi + 0x30], ecx
mov eax, dword [esi + 0x1c]
push ecx
push eax
call fcn.0040e760
add esp, 8
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 8]
test eax, eax
je 0x417d17
cmp dword [esi + 0x30], edx
jb 0x417d17
mov dword [esi + 0x24], edx
mov eax, dword [esi + 0x24]
movq xmm0, qword [esi + 0x1c]
mov dword [esi + 0x558], 0x11
mov dword [esi + 0x48], eax
movq qword [esi + 0x40], xmm0
lea eax, [esi + 0x40]
push ecx
push edi
push eax
call fcn.0040d790
add esp, 0xc
cmp dword [esi + 0x6c], 1
je 0x417d58
push 3
push str.exeNULcouldnt_generate_random_bytes:
lea eax, [esi + 0x40]
push eax
call fcn.0040e3f0
add esp, 0xc
mov edx, dword [esi + 0x40]
lea ecx, [esi + 0x78]
mov dword [esi + 0x30], edx
push dword [esi + 0x48]
call fcn.00419780
add esp, 4
mov eax, dword [esi + 0x44]
test eax, eax
je 0x417d81
push 1
push eax
push dword [esi + 0x30]
call fcn.00402fa0
add esp, 0xc
mov edi, dword [esi + 0x78]
test edi, edi
je 0x417b15
movq xmm0, qword [esi + 0x7c]
jmp 0x417ff0
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ebx, ebx
mov dword [esi + 0x48], eax
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 1
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x417dcb
add eax, eax
je 0x417dcb
push 2
push eax
push dword [esi + 0x14]
call fcn.00402fa0
add esp, 0xc
test bl, bl
je 0x417dda
mov edi, dword [esi + 0x44]
test edi, edi
jne 0x417feb
lea ecx, [esi + 0x40]
mov byte [esi + 3], 1
mov dword [esi + 0x558], 9
call fcn.00403d40
lea eax, [esi + 0x148]
push 0x400
push 0
push eax
call fcn.0042bc30
add esp, 0xc
mov edi, 0x200
mov dword [esi + 0x88], 2
mov dword [esi + 0x8c], 0
mov dword [esi + 0x90], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x14], 2
cmp edi, 0x201
jae 0x417e60
jmp 0x417eb0
mov edi, ebx
jbe 0x417f0a
cmp edi, 0x201
jb 0x417eb0
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 0x8c]
mov eax, edi
sub eax, edx
sub ecx, edx
cmp ecx, eax
jae 0x417e9b
mov dword [esi + 4], edi
mov dword [esi + 0x558], 0xc
lea ecx, [esi + 0x88]
push eax
call fcn.00437840
add esp, 4
mov eax, dword [esi + 0x88]
mov edi, dword [esi + 4]
mov dword [esi + 0x14], eax
mov ebx, dword [esi + 0x14]
mov dword [esi + 0x90], edi
mov dword [esi + 0x30], edi
mov dword [esi + 0xc], edi
jmp 0x417ebd
lea ebx, [esi + 0x148]
mov dword [esi + 0xc], 0x200
mov dword [esi + 4], 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 0x417ee4
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x417fab
cmp ebx, edi
jne 0x417e50
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x418eee
add edi, edi
cmp edi, 0x201
jb 0x417eb0
jmp 0x417e60
mov eax, dword [esi + 0xc]
mov dword [esi + 0x558], 0xc
cmp ebx, eax
ja 0x418fe4
lea eax, [esi + 0x78]
push ebx
push dword [esi + 4]
push eax
call fcn.0040c490
add esp, 0xc
mov dword [esi + 0x558], 0xd
push dword [esi + 0x10]
push dword [esi + 8]
lea eax, [esi + 0x78]
push eax
call fcn.0040d790
add esp, 0xc
cmp dword [esi + 0x6c], 1
je 0x417f64
push 3
push str.exeNULcouldnt_generate_random_bytes:
lea eax, [esi + 0x78]
push eax
call fcn.0040e3f0
add esp, 0xc
mov edx, dword [esi + 0x78]
lea ecx, [esi + 0x1c]
mov dword [esi + 0x30], edx
push dword [esi + 0x80]
call fcn.00419780
add esp, 4
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x417f90
push 1
push eax
push dword [esi + 0x30]
call fcn.00402fa0
add esp, 0xc
movq xmm0, qword [esi + 0x1c]
mov eax, dword [esi + 0x24]
mov bl, 1
movq qword [esi + 0x44], xmm0
mov dword [esi + 0x4c], eax
mov dword [esi + 0x40], 0
jmp 0x417fc4
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ebx, ebx
mov dword [esi + 0x48], eax
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 1
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x417fe0
add eax, eax
je 0x417fe0
push 2
push eax
push dword [esi + 0x14]
call fcn.00402fa0
add esp, 0xc
test bl, bl
je 0x41801a
mov edi, dword [esi + 0x44]
test edi, edi
je 0x41801a
movq xmm0, qword [esi + 0x48]
mov dword [esi + 0xb0], edi
movd dword [esi + 0xb4], xmm0
pshufd xmm0, xmm0, 0x55
movd dword [esi + 0xb8], xmm0
mov dword [esi + 0xac], 0
jmp 0x416a46
lea ecx, [esi + 0x40]
mov byte [esi + 3], 1
mov dword [esi + 0x558], 9
call fcn.00403d40
mov byte [esi + 3], 1
push 4
push str.PATHlock_count_overflow_in_reentrant_mutexlibrary_std_src_sys_common_remutex.rs
lea eax, [esi + 0x88]
push eax
call fcn.00409be0
add esp, 0xc
cmp dword [esi + 0x88], 0
je 0x4181a0
movq xmm0, qword [esi + 0x88]
mov eax, dword [esi + 0x90]
movq qword [esi + 0x1c], xmm0
mov dword [esi + 0x24], eax
mov ecx, dword [esi + 0x1c]
add eax, ecx
mov dword [esi + 0x148], ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x14c], eax
mov word [esi + 0x150], 0
mov byte [esi + 0x154], 1
lea eax, [esi + 0x148]
mov dword [esi + 0x558], 0xa
push eax
lea eax, [esi + 0x40]
push eax
call fcn.004140e0
add esp, 8
jmp 0x4180c3
lea eax, [esi + 0x148]
push eax
lea eax, [esi + 0x40]
push eax
call fcn.004140e0
add esp, 8
mov eax, dword [esi + 0x40]
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 8]
test eax, eax
je 0x41818b
mov edx, dword [esi + 0x48]
mov ecx, dword [esi + 0x44]
test edx, edx
jne 0x4180f0
test ecx, ecx
je 0x4180b0
push 1
push ecx
push eax
call fcn.00402fa0
add esp, 0xc
jmp 0x4180b0
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], ecx
mov dword [esi + 0x48], edx
mov dword [esi + 0x558], 0xb
push edi
push ebx
lea eax, [esi + 0x40]
push eax
call fcn.0040d790
add esp, 0xc
cmp dword [esi + 0x6c], 1
je 0x41812a
push 3
push str.exeNULcouldnt_generate_random_bytes:
lea eax, [esi + 0x40]
push eax
call fcn.0040e3f0
add esp, 0xc
mov edx, dword [esi + 0x40]
lea ecx, [esi + 0x78]
mov dword [esi + 4], edx
push dword [esi + 0x48]
call fcn.00419780
add esp, 4
mov eax, dword [esi + 0x44]
test eax, eax
je 0x418153
push 1
push eax
push dword [esi + 4]
call fcn.00402fa0
add esp, 0xc
mov edi, dword [esi + 0x78]
test edi, edi
je 0x418091
mov eax, dword [esi + 0x20]
movq xmm0, qword [esi + 0x7c]
test eax, eax
je 0x417ff0
push 1
push eax
push dword [esi + 0x30]
movdqa xmmword [esi + 0x30], xmm0
call fcn.00402fa0
movdqa xmm0, xmmword [esi + 0x30]
add esp, 0xc
jmp 0x417ff0
mov eax, dword [esi + 0x20]
test eax, eax
je 0x4181a0
push 1
push eax
push dword [esi + 0x30]
call fcn.00402fa0
add esp, 0xc
mov dword [esi + 0xb4], 0x43bb24
jmp 0x416a32
lea ecx, [ebx + eax + 1]
mov edi, dword [esi + 8]
mov eax, dword [esi + 4]
mov ebx, dword [esi + 0x10]
test eax, eax
cmovne ecx, eax
test ecx, ecx
je 0x4181e2
test eax, eax
cmove ebx, edx
add ecx, ebx
sub ecx, dword [esi + 0x30]
cmp edi, ecx
jb 0x4181e2
mov edi, ecx
mov dword [esi + 0x48], ecx
mov dword [esi + 0x558], 0x14
mov edx, dword [esi + 0x30]
mov dword [esi + 0x558], 0x14
lea ecx, [esi + 0xac]
push edi
call fcn.004149e0
add esp, 4
mov eax, dword [esi + 0x44]
test eax, eax
je 0x416a46
push 1
push eax
push dword [esi + 0x30]
call fcn.00402fa0
add esp, 0xc
jmp 0x416a46
mov dword [esi + 0x30], edx
lea ecx, [esi + 0x1c]
xor edx, edx
mov dword [esi + 4], ebx
mov dword [esi + 8], edi
mov byte [esi + 0x2b], 1
mov dword [esi + 0x558], 0x1b
call fcn.004087b0
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x24]
mov edx, dword [esi + 0x30]
mov edi, dword [esi + 8]
mov ebx, dword [esi + 4]
mov word [ecx + eax*2], 0
inc eax
mov dword [esi + 0x24], eax
mov dword [esi + 0xa4], eax
xor eax, eax
test edi, edi
mov dword [esi + 0x6c], ecx
lea ecx, [esi + 0x40]
mov dword [esi + 0x558], 0x1c
sete al
cmove ebx, edi
add eax, eax
mov dword [esi + 0x148], eax
mov dword [esi + 0x14c], edx
mov dword [esi + 0x150], edi
mov dword [esi + 0x158], eax
mov dword [esi + 0x15c], edx
lea edx, [esi + 0x148]
mov dword [esi + 0x160], edi
mov dword [esi + 0x168], ebx
call fcn.00407160
mov eax, dword [esi + 0x44]
test eax, eax
je 0x418763
mov ecx, dword [esi + 0x48]
lea ecx, [ecx + ecx*2]
mov edi, dword [eax + ecx*8 + 4]
test edi, edi
je 0x418763
mov edx, dword [eax + ecx*8 + 8]
mov ebx, dword [eax + ecx*8 + 0xc]
mov dword [esi + 0x9c], edi
mov dword [esi + 0x14], edx
mov edx, dword [eax + ecx*8 + 0x10]
add ebx, edi
mov dword [esi + 0x30], ebx
mov dword [esi + 0x2c], edx
mov edx, dword [eax + ecx*8 + 0x14]
mov dword [esi + 0xc], edx
mov edx, dword [eax + ecx*8 + 0x18]
mov dword [esi + 0xa8], edx
mov edx, dword [eax + ecx*4 + 0x114]
mov dword [esi + 0x80], edx
movq xmm0, qword [eax + ecx*4 + 0x10c]
xor ecx, ecx
movq qword [esi + 0x78], xmm0
jmp 0x4183e1
xor ecx, ecx
test bx, bx
je 0x4186b3
mov bx, 1
test cx, cx
jne 0x4183d6
cmp edi, dword [esi + 0x30]
je 0x41847a
movzx edx, byte [edi]
movzx eax, dl
test dl, dl
js 0x418400
inc edi
jmp 0x418460
movzx ecx, byte [edi + 1]
and eax, 0x1f
and ecx, 0x3f
cmp dl, 0xdf
jbe 0x418443
mov dword [esi + 4], edi
movzx edi, byte [edi + 2]
shl ecx, 6
and edi, 0x3f
or edi, ecx
cmp dl, 0xf0
mov dword [esi + 8], edi
jb 0x41844d
mov edi, dword [esi + 4]
mov edx, dword [esi + 8]
and eax, 7
shl eax, 0x12
movzx ecx, byte [edi + 3]
shl edx, 6
add edi, 4
and ecx, 0x3f
or ecx, edx
jmp 0x418449
add edi, 2
shl eax, 6
or eax, ecx
jmp 0x418459
mov edi, dword [esi + 4]
shl eax, 0xc
add eax, dword [esi + 8]
add edi, 3
cmp eax, 0xffff
ja 0x418469
xor ecx, ecx
mov ebx, eax
jmp 0x4183d8
and eax, 0x3ff
or eax, 0xdc00
mov ecx, eax
jmp 0x4183d8
mov eax, dword [esi + 0x14]
test eax, eax
je 0x418492
push 1
push eax
push dword [esi + 0x9c]
call fcn.00402fa0
add esp, 0xc
mov ecx, dword [esi + 0x2c]
mov ebx, dword [esi + 0xa8]
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 0xa4]
mov dword [esi + 0x40], ecx
mov dword [esi + 0x44], edx
lea eax, [ecx + ebx*2]
mov dword [esi + 0x48], ecx
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x4c], eax
sub ecx, edi
cmp ecx, ebx
mov ecx, dword [esi + 0x6c]
jae 0x4184e3
mov dword [esi + 0x558], 0x1f
lea ecx, [esi + 0x1c]
mov edx, edi
push ebx
call fcn.00437840
add esp, 4
mov ecx, dword [esi + 0x1c]
mov edi, dword [esi + 0x24]
mov ebx, dword [esi + 0xa8]
lea eax, [ebx + ebx]
mov dword [esi + 0x6c], ecx
lea ecx, [ecx + edi*2]
push eax
push dword [esi + 0x2c]
push ecx
call fcn.0042b6b0
add esp, 0xc
mov eax, dword [esi + 0xc]
add edi, ebx
mov dword [esi + 0x24], edi
test eax, eax
je 0x418517
add eax, eax
je 0x418517
push 2
push eax
push dword [esi + 0x2c]
call fcn.00402fa0
add esp, 0xc
cmp edi, dword [esi + 0x20]
jne 0x41853c
lea ecx, [esi + 0x1c]
mov edx, edi
mov byte [esi + 0x6b], 1
mov dword [esi + 0x558], 0x1d
call fcn.004087b0
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + 0x24]
jmp 0x41853f
mov eax, dword [esi + 0x6c]
mov word [eax + edi*2], 0x3d
inc edi
xor ebx, ebx
mov eax, dword [esi + 0x7c]
mov edx, dword [esi + 0x78]
mov dword [esi + 0x24], edi
mov dword [esi + 4], eax
mov eax, dword [esi + 0x80]
mov dword [esi + 0xc], edx
mov dword [esi + 0x14], eax
add eax, edx
mov dword [esi + 0x30], eax
jmp 0x418572
xor ebx, ebx
test di, di
je 0x4186f3
mov di, 1
test bx, bx
jne 0x418567
cmp edx, dword [esi + 0x30]
je 0x418609
movzx eax, byte [edx]
movzx ecx, al
test al, al
js 0x418591
inc edx
jmp 0x4185ed
movzx ebx, byte [edx + 1]
and ecx, 0x1f
and ebx, 0x3f
cmp al, 0xdf
jbe 0x4185d0
mov dword [esi + 8], edx
movzx edx, byte [edx + 2]
shl ebx, 6
and edx, 0x3f
or edx, ebx
cmp al, 0xf0
mov ebx, edx
jb 0x4185da
mov edx, dword [esi + 8]
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 0x4185e5
shl ecx, 6
add edx, 2
or ecx, ebx
jmp 0x4185e5
mov edx, dword [esi + 8]
shl ecx, 0xc
or ecx, ebx
add edx, 3
cmp ecx, 0xffff
ja 0x4185f6
xor ebx, ebx
mov edi, ecx
jmp 0x418569
and ecx, 0x3ff
or ecx, 0xdc00
mov ebx, ecx
jmp 0x418569
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x558], 0x1e
mov dword [esi + 0xb0], eax
mov dword [esi + 0xac], edx
mov dword [esi + 0xb4], ecx
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x40], edx
lea edx, [esi + 0x40]
mov dword [esi + 0x44], ecx
lea ecx, [esi + 0x1c]
mov word [esi + 0x48], 0
call fcn.00408aa0
mov eax, dword [esi + 4]
test eax, eax
je 0x41865d
push 1
push eax
push dword [esi + 0xc]
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 0x24]
cmp eax, dword [esi + 0x20]
jne 0x418680
lea ecx, [esi + 0x1c]
mov edx, eax
mov byte [esi + 0x6b], 0
mov dword [esi + 0x558], 0x1d
call fcn.004087b0
mov eax, dword [esi + 0x24]
mov edi, dword [esi + 0x1c]
lea ecx, [esi + 0x40]
lea edx, [esi + 0x148]
mov word [edi + eax*2], 0
inc eax
mov dword [esi + 0x6c], edi
mov dword [esi + 0x558], 0x1c
mov dword [esi + 0xa4], eax
mov dword [esi + 0x24], eax
call fcn.00407160
jmp 0x41836c
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4186cb
push 1
push eax
push dword [esi + 0x9c]
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x4186e0
push 1
push eax
push dword [esi + 0x78]
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 0xc]
test eax, eax
je 0x418712
add eax, eax
je 0x418712
push 2
push eax
push dword [esi + 0x2c]
jmp 0x418700
mov eax, dword [esi + 4]
test eax, eax
je 0x418708
push 1
push eax
push dword [esi + 0xc]
call fcn.00402fa0
add esp, 0xc
mov dword [esi + 0x558], 0x1b
lea ecx, [esi + 0x148]
mov byte [esi + 0x2b], 0
mov dword [esi + 0x558], 0x1b
call fcn.00403fc0
mov eax, dword [esi + 0x20]
test eax, eax
je 0x418744
add eax, eax
je 0x418744
push 2
push eax
push dword [esi + 0x1c]
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 0xa0]
mov dword [eax + 8], 0x43bad4
mov dword [eax + 4], 2
mov dword [eax], 1
jmp 0x418bbc
lea ecx, [esi + 0x148]
mov byte [esi + 0x2b], 0
mov dword [esi + 0x558], 0x1b
call fcn.00403fc0
mov edx, dword [esi + 0xa4]
mov eax, dword [esi + 0x6c]
cmp edx, dword [esi + 0x20]
jne 0x41879c
lea ecx, [esi + 0x1c]
mov byte [esi + 0x2b], 0
call fcn.004087b0
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x24]
mov word [eax + edx*2], 0
mov eax, dword [esi + 0x74]
xor edi, edi
inc edx
mov ecx, dword [esi + 0x1c]
mov ebx, dword [esi + 0x20]
mov dword [esi + 0x14], ecx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0xc], ecx
mov ecx, eax
add eax, 0x28
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], edx
mov edx, 0
mov dword [esi + 8], ebx
mov ecx, dword [ecx + 0x28]
test ecx, ecx
cmove eax, ecx
mov ecx, 0
je 0x41891a
mov edx, dword [eax]
mov eax, dword [eax + 8]
xor ebx, ebx
add eax, edx
mov dword [esi + 0x10], edx
mov dword [esi + 0x30], eax
jmp 0x4187f9
xor ebx, ebx
test di, di
je 0x41888f
mov di, 1
test bx, bx
jne 0x4187ee
cmp edx, dword [esi + 0x30]
je 0x4188ae
movzx ecx, byte [edx]
movzx eax, cl
test cl, cl
js 0x418818
inc edx
jmp 0x418875
movzx ebx, byte [edx + 1]
and eax, 0x1f
and ebx, 0x3f
cmp cl, 0xdf
jbe 0x418859
mov dword [esi + 4], edx
movzx edx, byte [edx + 2]
shl ebx, 6
and edx, 0x3f
or edx, ebx
cmp cl, 0xf0
mov ebx, edx
jb 0x418863
mov edx, dword [esi + 4]
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
jmp 0x41886e
shl eax, 6
add edx, 2
or eax, ebx
jmp 0x41886e
mov edx, dword [esi + 4]
shl eax, 0xc
or eax, ebx
add edx, 3
cmp eax, 0xffff
ja 0x41887e
xor ebx, ebx
mov edi, eax
jmp 0x4187f0
and eax, 0x3ff
or eax, 0xdc00
mov ebx, eax
jmp 0x4187f0
mov eax, dword [esi + 0xa0]
mov dword [eax + 8], 0x43bad4
mov dword [eax + 4], 2
mov dword [eax], 1
jmp 0x418ba2
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x30]
lea edx, [esi + 0x148]
mov dword [esi + 0x558], 0x20
mov dword [esi + 0x148], eax
mov dword [esi + 0x14c], ecx
lea ecx, [esi + 0x40]
mov word [esi + 0x150], 0
call fcn.00405560
mov edi, dword [esi + 0x44]
mov edx, dword [esi + 0x48]
cmp edx, edi
jne 0x418903
lea ecx, [esi + 0x40]
mov dword [esi + 0x558], 0x21
call fcn.004087b0
mov edi, dword [esi + 0x44]
mov edx, dword [esi + 0x48]
mov ecx, dword [esi + 0x40]
mov word [ecx + edx*2], 0
inc edx
mov dword [esi + 0x558], 0x22
mov dword [esi + 0x10], ecx
mov eax, dword [esi + 0x10]
pxor xmm0, xmm0
mov dword [esi + 0x9c], ecx
mov dword [esi + 0x30], edi
movdqa xmmword [esi + 0x40], xmm0
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], edi
mov dword [esi + 0x80], edx
push 0x446a48
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov eax, dword [esi + 0x74]
xor ecx, ecx
lea ebx, [esi + 0xdc]
mov dword [esi + 0x148], 0
mov dword [esi + 0x150], 0
mov dword [esi + 0x144], 0x446a48
mov dword [esi + 0x158], 0
mov dword [esi + 0x88], 1
mov edi, dword [eax + 0x38]
lea edx, [eax + 0x38]
cmp edi, 5
mov dword [esi + 4], edi
lea edi, [esi + 0xe0]
cmove edx, ecx
cmp byte [ebp + 0xc], 0
lea ecx, [esi + 0x88]
cmovne ecx, ebx
lea ebx, [esi + 0x8c]
cmovne ebx, edi
cmp dword [esi + 4], 5
lea edi, [edx + 4]
cmovne ecx, edx
mov edx, dword [eax + 0x40]
cmove edi, ebx
mov ebx, 0
mov dword [esi + 0x2c], edx
cmp edx, 5
lea edx, [eax + 0x40]
cmove edx, ebx
mov dword [esi + 4], edx
mov edx, dword [eax + 0x48]
add eax, 0x48
cmp edx, 5
mov dword [esi + 0x6c], edx
mov edx, dword [ecx]
lea ecx, [esi + 0xac]
cmove eax, ebx
mov dword [esi + 0x74], eax
mov eax, dword [edi]
lea edi, [esi + 0x148]
mov dword [esi + 0x558], 0x22
push edi
push 0xfffffffffffffff6
push eax
call fcn.00419890
add esp, 0xc
cmp dword [esi + 0xac], 0
mov edi, dword [esi + 0x30]
je 0x418a39
mov eax, dword [esi + 0xb0]
mov edx, dword [esi + 0xa0]
mov ecx, dword [esi + 0xb4]
mov dword [edx + 8], ecx
mov dword [edx + 4], eax
mov dword [edx], 1
jmp 0x418b42
mov edx, dword [esi + 0xb0]
mov edi, dword [esi + 4]
cmp dword [esi + 0x2c], 5
lea eax, [esi + 0x150]
mov dword [esi + 0x2c], edx
lea edx, [esi + 0xdc]
lea ecx, [edi + 4]
cmove edi, edx
mov edx, dword [edi]
lea edi, [esi + 0xe0]
cmove ecx, edi
mov edi, dword [ecx]
mov dword [esi + 0x558], 0x23
lea ecx, [esi + 0xac]
push eax
push 0xfffffffffffffff5
push edi
call fcn.00419890
add esp, 0xc
cmp dword [esi + 0xac], 0
mov edi, dword [esi + 0x30]
je 0x418ab6
mov ebx, dword [esi + 0x2c]
mov eax, dword [esi + 0xb0]
mov edx, dword [esi + 0xa0]
mov ecx, dword [esi + 0xb4]
mov dword [edx + 8], ecx
mov dword [edx + 4], eax
mov dword [edx], 1
jmp 0x418b3b
cmp dword [esi + 0x6c], 5
mov ecx, dword [esi + 0x74]
lea edi, [esi + 0xdc]
lea edx, [esi + 0xe0]
lea eax, [esi + 0x158]
cmovne edi, ecx
lea ecx, [ecx + 4]
cmove ecx, edx
mov edx, dword [esi + 0xb0]
mov dword [esi + 4], edx
mov edx, dword [edi]
mov edi, dword [ecx]
mov dword [esi + 0x558], 0x24
lea ecx, [esi + 0xac]
push eax
push 0xfffffffffffffff4
push edi
call fcn.00419890
add esp, 0xc
cmp dword [esi + 0xac], 0
je 0x418bea
mov eax, dword [esi + 0xb0]
mov edx, dword [esi + 0xa0]
mov ecx, dword [esi + 0xb4]
mov edi, dword [esi + 0x30]
mov ebx, dword [esi + 0x2c]
mov dword [edx + 8], ecx
mov dword [edx + 4], eax
mov dword [edx], 1
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x148], 0
je 0x418b57
push dword [esi + 0x14c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x150], 0
je 0x418b6c
push dword [esi + 0x154]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esi + 0x158], 0
je 0x418b81
push dword [esi + 0x15c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x446a48
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test edi, edi
je 0x418ba2
add edi, edi
je 0x418ba2
push 2
push edi
push dword [esi + 0x10]
call fcn.00402fa0
add esp, 0xc
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
test ecx, ecx
je 0x418bbc
add ecx, ecx
je 0x418bbc
push 2
push ecx
push eax
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 0xd4]
mov bl, 1
test eax, eax
je 0x417257
add eax, eax
je 0x417257
push 2
push eax
push dword [esi + 0xd0]
call fcn.00402fa0
add esp, 0xc
jmp 0x417257
mov ebx, dword [esi + 0x2c]
mov eax, dword [esi + 4]
mov edi, dword [esi + 0xb0]
mov edx, dword [esi + 0x138]
lea ecx, [esi + 0x40]
mov dword [esi + 0x11c], ebx
mov dword [esi + 0x120], eax
mov eax, dword [esi + 0xd0]
mov dword [esi + 0x124], edi
push ecx
lea ecx, [esi + 0xe4]
push ecx
push dword [esi + 0x9c]
push dword [esi + 0x14]
push dword [esi + 0x94]
push 1
push 0
push 0
mov dword [esi + 0x74], eax
push eax
mov dword [esi + 0x14], edx
push edx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x418d1d
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esi + 0x44]
call ebx
movsd xmm1, qword [esi + 0x150]
mov ecx, dword [esi + 0xa0]
mov eax, dword [esi + 0x40]
movq xmm0, qword [esi + 0x148]
movsd qword [ecx + 0x10], xmm1
movsd xmm1, qword [esi + 0x158]
movq qword [ecx + 8], xmm0
movsd qword [ecx + 0x18], xmm1
mov dword [ecx + 4], eax
mov dword [ecx], 0
push edi
call ebx
push dword [esi + 4]
call ebx
push dword [esi + 0x2c]
call ebx
push 0x446a48
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esi + 0x30]
test eax, eax
je 0x418cbf
add eax, eax
je 0x418cbf
push 2
push eax
push dword [esi + 0x10]
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 8]
test eax, eax
je 0x418cd8
add eax, eax
je 0x418cd8
push 2
push eax
push dword [esi + 0xc]
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 0xd4]
test eax, eax
je 0x418cf4
add eax, eax
je 0x418cf4
push 2
push eax
push dword [esi + 0x74]
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 0x13c]
test eax, eax
je 0x4172ee
add eax, eax
je 0x4172ee
push 2
push eax
push dword [esi + 0x14]
call fcn.00402fa0
add esp, 0xc
jmp 0x4172ee
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 0xa0]
mov dword [ecx + 8], eax
mov dword [ecx + 4], 0
mov dword [ecx], 1
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [esi + 0x30]
jmp 0x418b32
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xb0], eax
lea eax, [esi + 0xac]
mov dword [esi + str.comparing_environment_keys_failed:], 0x43ba74
mov dword [esi + 0x14c], 1
mov dword [esi + 0xac], 0
mov dword [esi + 0x150], 0
mov dword [esi + 0x558], 0x26
mov dword [esi + 0x78], eax
lea eax, [esi + 0x78]
mov dword [esi + 0x7c], 0x40a410
mov dword [esi + 0x158], eax
mov dword [esi + 0x15c], 1
lea eax, [esi + 0x148]
push 0x43baa4
push eax
call fcn.00438410
add esp, 8
jmp 0x418ff3
call fcn.00423790
jmp 0x418ff3
mov dword [esi + 0x558], 4
call fcn.00423790
jmp 0x418ff3
push 1
push ecx
call fcn.00438290
add esp, 8
jmp 0x418ff3
mov byte [esi + 0x72], 1
mov dword [esi + 0x558], 2
call fcn.00423790
jmp 0x418ff3
mov dword [esi + 0x558], 4
call fcn.00423790
jmp 0x418ff3
mov dword [esi + 0x558], 4
push ebx
push edi
call fcn.00438290
add esp, 8
jmp 0x418ff3
mov byte [esi + 0x72], 1
mov dword [esi + 0x558], 2
push 1
push ebx
call fcn.00438290
add esp, 8
jmp 0x418ff3
mov dword [esi + str.capacity_overflow], 0x43a2f8
mov dword [esi + 0x14c], 1
mov dword [esi + 0x150], 0
mov dword [esi + 0x158], 0x439998
mov dword [esi + 0x15c], 0
mov dword [esi + 0x558], 0x19
lea eax, [esi + 0x148]
push 0x43a354
push eax
call fcn.00438410
add esp, 8
jmp 0x418ff3
mov dword [esi + 0x558], 3
push 0x439ea0
push 0x21
push str.assertion_failed:_self.height___0
call fcn.004382c0
add esp, 0xc
jmp 0x418ff3
mov dword [esi + 0x558], 0xe
push 0x43bcd0
push 0x28
push str.internal_error:_entered_unreachable_codep
call fcn.004382c0
add esp, 0xc
jmp 0x418ff3
mov dword [esi + 0x558], 0xc
push 0x43bcd0
push 0x28
push str.internal_error:_entered_unreachable_codep
call fcn.004382c0
add esp, 0xc
jmp 0x418ff3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xe8], eax
lea eax, [esi + 0xe4]
mov dword [esi + 0x148], 0x43b974
mov dword [esi + 0x14c], 1
mov dword [esi + 0xe4], 0
mov dword [esi + 0x150], 0
mov dword [esi + 0x558], 8
mov dword [esi + 0x40], eax
lea eax, [esi + 0x40]
mov dword [esi + 0x44], 0x40a410
mov dword [esi + 0x158], eax
mov dword [esi + 0x15c], 1
lea eax, [esi + 0x148]
push 0x43b97c
push eax
call fcn.00438410
add esp, 8
jmp 0x418ff3
mov byte [esi + 3], 1
mov dword [esi + 0x558], 9
call fcn.00423790
jmp 0x418ff3
mov byte [esi + 3], 1
mov dword [esi + 0x558], 9
push 1
push edi
call fcn.00438290
add esp, 8
jmp 0x418ff3
push 0x43bce0
push eax
push ebx
call fcn.004384e0
add esp, 0xc
jmp 0x418ff3
mov dword [esi + 0x558], 0x14
push 0x4398c0
push eax
push ecx
call fcn.004384d0
add esp, 0xc
jmp 0x418ff3
push 0x43bce0
push eax
push ebx
call fcn.004384e0
add esp, 0xc
ud2