Function at 0x4128c0
Capabilities:
Create process on windows
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x170
mov esi, esp
mov dword [esi + 0x158], ebp
mov dword [esi + 0x15c], esp
mov dword [esi + 0x168], 0xffffffff
mov dword [esi + 0x164], 0x417510
mov dword [esi + 0x64], ecx
mov eax, dword [ebp + 8]
mov dword [esi + 0x68], edx
mov ecx, dword fs:[0]
mov dword [esi + 0x160], ecx
lea ecx, [esi + 0x160]
mov dword fs:[0], ecx
mov dword [esi + 0xbc], eax
mov al, byte [edx + 0x24]
mov ebx, dword [edx + 0x20]
test al, al
sete cl
test ebx, ebx
sete dl
and dl, cl
cmp dl, 1
jne 0x412948
mov dword [esi + 0xe8], 0
test dl, dl
je 0x4131b7
jmp 0x413533
test al, al
mov dword [esi + 0x44], 0
mov byte [esi + 0xd8], dl
mov dword [esi + 0x48], 0
je 0x4129ac
mov ecx, dword [esi + 0x68]
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x412bfa
mov edi, dword [ecx + 0x18]
movzx ecx, word [eax + 0x10e]
mov edx, eax
test edi, edi
je 0x412c00
nop word cs:[eax + eax]
nop dword [eax]
mov edx, dword [edx + ecx*4 + 0x110]
mov eax, dword [eax + 0x110]
dec edi
movzx ecx, word [edx + 0x10e]
jne 0x412990
jmp 0x412c00
mov dword [esi + 0x18], ebx
call sub.KERNEL32.dll_GetEnvironmentStringsW
test eax, eax
je 0x41456b
mov dword [esi + 0xa8], eax
mov dword [esi + 0xac], eax
nop dword [eax + eax]
lea eax, [esi + 0xa8]
mov dword [esi + 0x168], 3
push eax
lea eax, [esi + 0xf8]
push eax
call fcn.00411d60
add esp, 8
mov eax, dword [esi + 0xf8]
test eax, eax
je 0x412bde
mov ebx, dword [esi + 0x100]
lea ecx, [esi + 0x104]
mov edi, dword [esi + 0xfc]
movq xmm0, qword [ecx]
mov edx, dword [ecx + 8]
test ebx, ebx
mov dword [esi], ebx
movq qword [esi + 0x90], xmm0
mov dword [esi + 0x98], edx
je 0x412b6d
cmp dword [esi], 8
mov ebx, eax
jb 0x412b40
mov ecx, dword [esi]
xor edx, edx
mov dword [esi + 4], edi
cmp ecx, 0x20
jb 0x412ad4
movdqa xmm5, xmmword [0x424540]
movdqa xmm6, xmmword [0x424550]
movdqa xmm7, xmmword [0x424560]
mov edx, ecx
lea ebx, [eax + 0x10]
and edx, 0xffffffe0
mov edi, edx
nop dword [eax]
movdqu xmm0, xmmword [ebx - 0x10]
movdqu xmm1, xmmword [ebx]
movdqa xmm2, xmm0
movdqa xmm3, xmm1
paddb xmm2, xmm5
paddb xmm3, xmm5
movdqa xmm4, xmm2
pmaxub xmm4, xmm6
pcmpeqb xmm4, xmm2
movdqa xmm2, xmm3
pmaxub xmm2, xmm6
por xmm4, xmm7
pcmpeqb xmm2, xmm3
pand xmm4, xmm0
por xmm2, xmm7
movdqu xmmword [ebx - 0x10], xmm4
pand xmm2, xmm1
movdqu xmmword [ebx], xmm2
add ebx, 0x20
add edi, 0xffffffe0
jne 0x412a70
cmp dword [esi], edx
mov edi, dword [esi + 4]
je 0x412b6d
mov ecx, dword [esi]
test cl, 0x18
je 0x412b38
movdqa xmm3, xmmword [0x424570]
movdqa xmm4, xmmword [0x424530]
movdqa xmm5, xmmword [0x424580]
and ecx, 0xfffffff8
lea edi, [eax + edx]
lea ebx, [eax + ecx]
sub edx, ecx
mov dword [esi + 8], ecx
nop word [eax + eax]
movq xmm0, qword [edi]
movdqa xmm1, xmm0
paddb xmm1, xmm3
movdqa xmm2, xmm1
pmaxub xmm2, xmm4
pcmpeqb xmm2, xmm1
por xmm2, xmm5
pand xmm2, xmm0
movq qword [edi], xmm2
add edi, 8
add edx, 8
jne 0x412b00
mov ecx, dword [esi + 8]
mov edi, dword [esi + 4]
cmp dword [esi], ecx
jne 0x412b40
jmp 0x412b6d
add edx, eax
mov ebx, edx
nop dword [eax]
mov ecx, dword [esi]
lea edx, [eax + ecx]
nop word cs:[eax + eax]
nop
movzx ecx, byte [ebx]
mov ch, cl
add ch, 0x9f
cmp ch, 0x19
seta ch
shl ch, 5
or ch, 0xdf
and ch, cl
mov byte [ebx], ch
inc ebx
cmp edx, ebx
jne 0x412b50
mov dword [esi + 0x6c], eax
mov eax, dword [esi]
mov dword [esi + 0x70], edi
movq xmm0, qword [esi + 0x90]
mov dword [esi + 0x168], 3
lea ecx, [esi + 0x20]
lea edx, [esi + 0x40]
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0x98]
movq qword [esi + 0xf8], xmm0
mov dword [esi + 0x100], eax
lea eax, [esi + 0xf8]
push eax
lea eax, [esi + 0x6c]
push eax
call fcn.00405860
add esp, 8
mov eax, dword [esi + 0x20]
test eax, eax
je 0x4129d0
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x4129d0
push 1
push ecx
push eax
call fcn.004036f0
add esp, 0xc
jmp 0x4129d0
push dword [esi + 0xa8]
call sub.KERNEL32.dll_FreeEnvironmentStringsW
mov ebx, dword [esi + 0x18]
mov ecx, dword [esi + 0x68]
mov eax, dword [ecx + 0x1c]
test eax, eax
jne 0x41296e
xor eax, eax
xor edx, edx
xor ebx, ebx
mov dword [esi + 0x6c], 0
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], 0
mov dword [esi + 0x78], 0
mov dword [esi + 0x7c], edx
mov dword [esi + 0x80], ecx
jmp 0x412c3e
call fcn.004036f0
add esp, 0xc
mov ebx, dword [esi + 0x84]
test ebx, ebx
je 0x413189
dec ebx
lea ecx, [esi + 0x6c]
mov dword [esi + 0x84], ebx
mov eax, dword [esi + 0x70]
test eax, eax
cmovne eax, ecx
mov edi, dword [eax + 4]
mov ecx, dword [eax + 8]
movzx edx, word [edi + 0x10e]
cmp ecx, edx
mov edx, dword [eax]
jae 0x412c80
mov ebx, edi
test edx, edx
jne 0x412ca1
lea edx, [ecx + 1]
mov edi, ebx
jmp 0x412cbb
mov ebx, dword [edi]
test ebx, ebx
je 0x412df0
movzx ecx, word [edi + 0x10c]
inc edx
mov edi, ebx
cmp cx, word [ebx + 0x10e]
jae 0x412c80
test edx, edx
je 0x412c71
mov edi, dword [ebx + ecx*4 + 0x114]
jmp 0x412cb6
mov edi, dword [edi + 0x110]
dec edx
jne 0x412cb0
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], edi
mov dword [eax + 8], edx
lea edi, [ecx + ecx*2]
cmp dword [ebx + edi*4 + 0x88], 0
lea eax, [ebx + edi*4 + 4]
je 0x412d20
mov dword [esi], edi
mov edi, dword [ebx + edi*4 + 0xc]
test edi, edi
js 0x4144c8
mov ecx, dword [eax]
test edi, edi
je 0x412e00
mov dword [esi + 8], ecx
push 1
push edi
call fcn.004036e0
add esp, 8
test eax, eax
je 0x414513
mov ecx, dword [esi + 8]
mov dword [esi + 4], edi
jmp 0x412e0c
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x412c38
mov edx, ecx
mov ecx, dword [esi + 0x40]
mov eax, dword [eax]
mov dword [esi + 0x14], ecx
mov ecx, edx
mov edx, dword [ebx + edi*4 + 0xc]
mov dword [esi + 0x18], eax
mov dword [esi + 4], edx
movzx eax, word [ecx + 0x10e]
lea ebx, [ecx + 4]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x4c], eax
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4 + 4]
xor ecx, ecx
mov dword [esi + 8], eax
jmp 0x412d77
mov eax, 1
js 0x412dd0
mov ecx, dword [esi]
add ebx, 0xc
test eax, eax
lea ecx, [ecx + 1]
je 0x412ef0
cmp ebx, dword [esi + 8]
mov dword [esi], ecx
je 0x412db0
mov edi, dword [ebx + 8]
mov eax, dword [esi + 4]
cmp eax, edi
cmova eax, edi
push eax
push dword [ebx]
push dword [esi + 0x18]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x412d60
xor eax, eax
cmp dword [esi + 4], edi
setne cl
jb 0x412dd0
mov al, cl
jmp 0x412d67
mov edx, dword [esi + 0x4c]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0xc]
test eax, eax
jne 0x412de0
jmp 0x412c38
mov edx, dword [esi]
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0xc]
test eax, eax
je 0x412c38
mov ecx, dword [ecx + edx*4 + 0x110]
dec eax
mov dword [esi + 0x14], eax
jmp 0x412d41
xor ebx, ebx
test edx, edx
jne 0x412ca1
jmp 0x412c71
mov eax, 1
mov dword [esi + 4], 0
mov dword [esi + 8], eax
push edi
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 8]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov dword [esi + 0x24], eax
mov eax, dword [esi]
mov dword [esi + 0x28], edi
mov ecx, dword [ebx + eax*4 + 0x90]
test ecx, ecx
mov dword [esi + 8], ecx
js 0x4144dc
lea eax, [ebx + eax*4 + 0x88]
test ecx, ecx
mov eax, dword [eax]
je 0x412e70
mov dword [esi + 4], eax
push 1
push ecx
mov ebx, ecx
call fcn.004036e0
add esp, 8
test eax, eax
je 0x414518
mov edi, eax
mov eax, dword [esi + 4]
mov ecx, ebx
mov dword [esi], ebx
jmp 0x412e7b
mov dword [esi], 0
mov edi, 1
push ecx
push eax
push edi
mov ebx, ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi]
mov dword [esi + 0xf8], edi
mov dword [esi + 0x168], 2
lea ecx, [esi + 0x90]
lea edx, [esi + 0x40]
mov dword [esi + 0xfc], eax
lea eax, [esi + 0xf8]
mov dword [esi + 0x100], ebx
push eax
lea eax, [esi + 0x20]
push eax
call fcn.00405860
add esp, 8
mov eax, dword [esi + 0x90]
test eax, eax
je 0x412c38
mov ecx, dword [esi + 0x94]
test ecx, ecx
je 0x412c38
push 1
push ecx
push eax
jmp 0x412c30
mov edx, dword [esi + 0x14]
mov byte [esi + 0xa8], 0
test edx, edx
je 0x412feb
mov eax, dword [esi + 0xc]
mov ecx, dword [esi]
dec edx
mov eax, dword [eax + ecx*4 + 0x110]
je 0x412f3b
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx ecx, word [eax + 0x10e]
dec edx
mov eax, dword [eax + ecx*4 + 0x110]
jne 0x412f20
mov dword [esi + 0x168], 1
movzx ecx, word [eax + 0x10e]
mov dword [esi + 0x20], 0
mov dword [esi + 0x168], 1
test ecx, ecx
lea edx, [ecx - 1]
cmove eax, ecx
cmove edx, ecx
lea ecx, [esi + 0xf8]
mov dword [esi + 0x24], eax
lea eax, [esi + 0xa8]
mov dword [esi + 0x28], edx
lea edx, [esi + 0x20]
push eax
call fcn.00407110
add esp, 4
movq xmm0, qword [esi + 0x108]
movq xmm2, qword [esi + 0xf8]
movq xmm1, qword [esi + 0x100]
mov edi, dword [esi + 0x114]
mov ecx, dword [esi + 0x118]
mov eax, dword [esi + 0x110]
movq qword [esi + 0xa0], xmm0
movq qword [esi + 0x98], xmm1
movq qword [esi + 0x90], xmm2
movzx edx, word [edi + 0x10e]
cmp ecx, edx
jae 0x412fd0
mov edx, edi
jmp 0x413026
mov edx, dword [edi]
test edx, edx
je 0x413024
movzx ecx, word [edi + 0x10c]
inc eax
mov edi, edx
cmp cx, word [edx + 0x10e]
jae 0x412fd0
jmp 0x413026
mov eax, dword [esi + 0xc]
mov dword [esi + 0x20], 0
mov dword [esi + 0x168], 1
lea ecx, [esi + 0xf8]
lea edx, [esi + 0x20]
mov dword [esi + 0x24], eax
mov eax, dword [esi]
mov dword [esi + 0x28], eax
lea eax, [esi + 0xa8]
push eax
call fcn.00407110
add esp, 4
jmp 0x4130e0
xor edx, edx
lea edi, [ecx + ecx*2]
test eax, eax
mov ebx, dword [edx + edi*4 + 0xc]
mov dword [esi], edi
mov dword [esi + 0x28], ebx
mov ebx, dword [esi + 0x98]
movsd xmm0, qword [edx + edi*4 + 4]
movsd qword [esi + 0x20], xmm0
mov dword [edx + edi*4 + 0xc], ebx
movsd xmm0, qword [esi + 0x90]
movsd qword [edx + edi*4 + 4], xmm0
mov ebx, dword [edx + edi*4 + 0x90]
lea edi, [esi + 0x2c]
mov dword [edi + 8], ebx
mov ebx, edi
mov edi, dword [esi]
movsd xmm0, qword [edx + edi*4 + 0x88]
movsd qword [ebx], xmm0
lea ebx, [esi + 0x9c]
mov ebx, dword [ebx + 8]
mov dword [edx + edi*4 + 0x90], ebx
lea ebx, [esi + 0x9c]
movq xmm0, qword [ebx]
movq qword [edx + edi*4 + 0x88], xmm0
je 0x4130b9
dec eax
je 0x4130b9
mov ecx, dword [edx + ecx*4 + 0x114]
nop word cs:[eax + eax]
nop
mov ecx, dword [ecx + 0x110]
dec eax
jne 0x4130b0
movq xmm0, qword [esi + 0x30]
movq xmm2, qword [esi + 0x20]
movq xmm1, qword [esi + 0x28]
movq qword [esi + 0x108], xmm0
movq qword [esi + 0x100], xmm1
movq qword [esi + 0xf8], xmm2
movq xmm0, qword [esi + 0x108]
movq xmm2, qword [esi + 0xf8]
movq xmm1, qword [esi + 0x100]
dec dword [esi + 0x48]
cmp byte [esi + 0xa8], 0
movq qword [esi + 0x30], xmm0
movq qword [esi + 0x28], xmm1
movq qword [esi + 0x20], xmm2
je 0x41314c
mov eax, dword [esi + 0x44]
test eax, eax
je 0x414548
mov ecx, dword [esi + 0x40]
test ecx, ecx
je 0x414525
mov edx, dword [eax + 0x110]
dec ecx
mov dword [esi + 0x44], edx
mov dword [esi + 0x40], ecx
mov dword [edx], 0
push 4
push 0x140
push eax
call fcn.004036f0
add esp, 0xc
mov eax, dword [esi + 0x20]
test eax, eax
je 0x412c38
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 0x2c]
mov ebx, dword [esi + 0x30]
test ecx, ecx
je 0x413170
push 1
push ecx
push eax
call fcn.004036f0
add esp, 0xc
test edi, edi
je 0x412c38
test ebx, ebx
je 0x412c38
push 1
push ebx
push edi
jmp 0x412c30
movq xmm0, qword [esi + 0x40]
mov eax, dword [esi + 0x48]
mov dl, byte [esi + 0xd8]
movq qword [esi + 0xec], xmm0
mov dword [esi + 0xf4], eax
mov dword [esi + 0xe8], 1
test dl, dl
jne 0x413533
mov eax, dword [esi + 0xf0]
test eax, eax
je 0x413533
mov ecx, dword [esi + 0xec]
lea ebx, [eax + 4]
mov dword [esi + 0x18], eax
movzx eax, word [eax + 0x10e]
xor edi, edi
xor edx, edx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x14], eax
lea eax, [eax*4]
lea eax, [eax + eax*2]
mov dword [esi + 8], eax
jmp 0x413214
mov edx, dword [esi]
mov eax, 1
js 0x413263
add ebx, 0xc
inc edx
add edi, 0xc
test eax, eax
je 0x41327e
cmp dword [esi + 8], edi
je 0x413260
mov ecx, dword [ebx + 8]
mov eax, 4
mov dword [esi], edx
cmp ecx, 4
mov dword [esi + 4], ecx
cmovb eax, ecx
push eax
push dword [ebx]
push str.PATHlibrary_std_src_sys_common_thread_info.rs
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x413200
xor eax, eax
cmp dword [esi + 4], 4
mov edx, dword [esi]
setne cl
ja 0x413263
mov al, cl
jmp 0x413209
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
test ecx, ecx
je 0x413533
mov eax, dword [eax + edx*4 + 0x110]
dec ecx
jmp 0x4131cb
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + edi + 0x7c]
mov ecx, dword [ecx + edi + 0x84]
add ecx, eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], ecx
mov word [esi + 0x28], 0
mov byte [esi + 0x2c], 1
nop
lea eax, [esi + 0x20]
mov dword [esi + 0x168], 6
mov byte [esi + 0x1f], 1
push eax
lea eax, [esi + 0xf8]
push eax
call fcn.00411f30
add esp, 8
cmp dword [esi + 0xf8], 0
mov eax, dword [esi + 0x68]
je 0x413533
mov ecx, dword [esi + 0x100]
movq xmm0, qword [esi + 0xf8]
mov dword [esi + 0x58], ecx
movq qword [esi + 0x50], xmm0
mov dword [esi + 0xb0], ecx
movq qword [esi + 0xa8], xmm0
mov dword [esi + 0x18], ecx
mov edx, dword [eax + 8]
mov edi, dword [eax]
mov ecx, dword [esi + 0xa8]
test edx, edx
mov dword [esi + 8], ecx
mov dword [esi], edi
mov eax, edx
mov dword [esi + 4], edx
je 0x413380
mov ebx, dword [esi]
mov eax, dword [esi + 4]
lea edi, [ebx + eax]
jmp 0x413326
mov ebx, ecx
cmp ebx, edi
je 0x413380
movzx edx, byte [ebx]
lea ecx, [ebx + 1]
test dl, dl
jns 0x413320
add ebx, 2
cmp dl, 0xdf
ja 0x41333f
cmp ecx, edi
cmove ebx, ecx
jmp 0x413322
cmp dl, 0xed
jne 0x41335c
cmp ecx, edi
cmove ebx, ecx
cmp ebx, edi
je 0x413380
inc ebx
cmp ecx, edi
je 0x413322
cmp byte [ecx], 0x9f
jbe 0x413322
jmp 0x4144f0
cmp ecx, edi
mov eax, ebx
cmove eax, ecx
lea ebx, [eax + 1]
cmp eax, edi
cmove ebx, eax
cmp dl, 0xf0
jb 0x413322
lea eax, [ebx + 1]
cmp ebx, edi
cmovne ebx, eax
jmp 0x413322
mov dword [esi + 0x168], 7
push dword [esi + 4]
push dword [esi]
push dword [esi + 0x18]
push dword [esi + 8]
lea eax, [esi + 0xf8]
push eax
call fcn.0040c330
add esp, 0x14
mov ecx, dword [esi + 0xf8]
mov eax, dword [esi + 0x100]
mov dword [esi + 0x168], 8
push 3
push 0x4261d4
push eax
mov dword [esi], ecx
push ecx
lea eax, [esi + 0x40]
push eax
call fcn.0040c440
add esp, 0x14
mov eax, dword [esi + 0xfc]
test eax, eax
je 0x4133e8
push 1
push eax
push dword [esi]
call fcn.004036f0
add esp, 0xc
mov edx, dword [esi + 0x40]
mov eax, dword [esi + 0x48]
lea edi, [esi + 0x6c]
lea ecx, [esi + 0x88]
mov dword [esi + 0x78], 0
mov dword [esi + 0x168], 9
mov word [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 0x7c], 7
mov dword [esi + 0x80], 0
mov dword [esi + 0x84], 0
mov dword [esi + 0x70], 1
mov dword [esi + 0x74], 0
mov dword [esi + 0x6c], 0x2000000
lea ecx, [esi + 0x90]
mov dword [esi], edx
push edi
push eax
call fcn.004115c0
add esp, 8
mov edx, dword [esi + 0x94]
cmp dword [esi + 0x90], 1
jne 0x413480
mov edi, dword [esi + 0x98]
cmp dl, 3
je 0x4134be
jmp 0x4134fe
lea ecx, [esi + 0xf8]
mov dword [esi + 0x168], 0xb
mov dword [esi + 4], edx
call fcn.00411790
push dword [esi + 4]
call sub.KERNEL32.dll_CloseHandle
cmp dword [esi + 0xf8], 1
jne 0x4139e2
mov edx, dword [esi + 0xfc]
mov edi, dword [esi + 0x100]
cmp dl, 3
jne 0x4134fe
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esi + 0x168], 0xa
push eax
mov dword [esi + 4], edi
call dword [ecx]
add esp, 4
mov edi, dword [esi + 4]
mov eax, dword [edi + 4]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4134f1
push dword [eax + 8]
push ecx
push dword [edi]
call fcn.004036f0
add esp, 0xc
push 4
push 0xc
push edi
call fcn.004036f0
add esp, 0xc
mov eax, dword [esi + 0x44]
test eax, eax
je 0x413512
push 1
push eax
push dword [esi]
call fcn.004036f0
add esp, 0xc
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4132a0
push 1
push eax
push dword [esi + 8]
call fcn.004036f0
add esp, 0xc
jmp 0x4132a0
mov dword [esi + 0xc8], 0
mov dword [esi + 0x168], 0xd
xor eax, eax
mov edi, dword [esi + 0x68]
test eax, eax
lea eax, [esi + 0xc8]
mov dword [esi + 0x100], 0
mov dword [esi + 0xfc], 0
mov dword [esi + 0x108], 0
mov dword [esi + 0x104], 0
mov dword [esi + 0x110], 0
mov dword [esi + 0x10c], 0
mov dword [esi + 0x118], 0
mov dword [esi + 0x114], 0
mov dword [esi + 0x120], 0
mov dword [esi + 0x11c], 0
mov dword [esi + 0x128], 0
mov dword [esi + 0x12c], 0
mov dword [esi + 0x130], 0xffffffff
mov dword [esi + 0x134], 0xffffffff
mov dword [esi + 0x138], 0xffffffff
mov dword [esi + 0xf8], 0x44
mov dword [esi + 0x124], 0x100
cmove eax, edi
lea ecx, [edi + 8]
mov edx, dword [eax]
lea eax, [esi + 0xd0]
cmove eax, ecx
mov ecx, dword [edi + 0xc]
mov eax, dword [eax]
mov dword [esi], ecx
mov ecx, dword [edi + 0x14]
mov dword [esi + 4], ecx
mov cl, byte [edi + 0x51]
mov dword [esi + 0x168], 0xd
mov byte [esi + 8], cl
mov ecx, dword [0x424d9c]
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x70], 0
mov dword [esi + 0x74], 0
lea ecx, [esi + 0x6c]
push 1
push eax
call fcn.00415430
add esp, 8
mov ebx, eax
mov edi, edx
cmp bl, 4
jne 0x4136d2
mov eax, dword [esi + 4]
mov ecx, dword [esi]
movzx edx, byte [esi + 8]
lea eax, [eax + eax*2]
mov dword [esi + 8], edx
lea eax, [ecx + eax*4]
mov dword [esi + 4], eax
mov eax, ecx
nop word cs:[eax + eax]
nop
cmp eax, dword [esi + 4]
je 0x4137b2
mov edx, dword [esi + 0x74]
mov dword [esi], eax
cmp edx, dword [esi + 0x70]
jne 0x4136a3
lea ecx, [esi + 0x6c]
push 1
call fcn.004228a0
add esp, 4
mov edx, dword [esi + 0x74]
mov eax, dword [esi + 0x6c]
lea ecx, [esi + 0x6c]
mov word [eax + edx*2], 0x20
mov eax, dword [esi]
inc dword [esi + 0x74]
mov edx, dword [eax]
push dword [esi + 8]
push dword [eax + 8]
call fcn.00415430
add esp, 8
mov ebx, eax
mov eax, dword [esi]
add eax, 0xc
cmp bl, 4
je 0x413680
mov edi, edx
mov eax, dword [esi + 0x70]
test eax, eax
je 0x4136f0
mov ecx, dword [esi + 0x6c]
test ecx, ecx
je 0x4136f0
add eax, eax
je 0x4136f0
push 2
push eax
push ecx
call fcn.004036f0
add esp, 0xc
mov eax, dword [esi + 0x64]
mov dword [eax + 4], ebx
mov bl, 1
mov dword [eax + 8], edi
mov dword [eax], 1
mov eax, dword [esi + 0xc8]
test eax, eax
je 0x413721
mov ecx, dword [esi + 0xcc]
test ecx, ecx
je 0x413721
push 1
push ecx
push eax
call fcn.004036f0
add esp, 0xc
cmp dword [esi + 0xe8], 0
setne al
test bl, al
je 0x41378a
mov eax, dword [esi + 0xf0]
test eax, eax
je 0x41378a
mov ecx, dword [esi + 0xec]
test ecx, ecx
je 0x413759
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [eax + 0x110]
dec ecx
jne 0x413750
mov ecx, dword [esi + 0xf4]
mov dword [esi + 0xf8], 0
mov dword [esi + 0xfc], eax
mov dword [esi + 0x100], 0
mov dword [esi + 0x104], ecx
lea ecx, [esi + 0xf8]
call fcn.00403db0
cmp dword [esi + 0xbc], 3
jne 0x41379e
push dword [esi + 0xc0]
call sub.KERNEL32.dll_CloseHandle
mov eax, dword [esi + 0x160]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esi + 0x70]
mov edx, dword [esi + 0x74]
mov eax, dword [esi + 0x6c]
cmp edx, ecx
mov dword [esi + 0xe0], ecx
mov dword [esi + 0xdc], eax
mov dword [esi + 0xe4], edx
jne 0x4137fb
mov byte [esi + 0x1e], 1
mov dword [esi + 0x168], 0xe
lea ecx, [esi + 0xdc]
push 1
call fcn.004228a0
add esp, 4
mov eax, dword [esi + 0xdc]
mov edx, dword [esi + 0xe4]
mov ecx, dword [esi + 0x68]
mov word [eax + edx*2], 0
inc dword [esi + 0xe4]
mov eax, 0x400
mov edx, 0x608
cmp byte [ecx + 0x50], 0
cmove edx, eax
or edx, dword [ecx + 0x34]
cmp dword [esi + 0xe8], 1
mov dword [esi + 0xd8], edx
jne 0x41389e
mov ebx, dword [esi + 0xf0]
mov eax, dword [0x424d9c]
mov edx, dword [esi + 0xec]
mov edi, dword [esi + 0xf4]
mov dword [esi + 8], 0
test ebx, ebx
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], 0
mov dword [esi + 0x58], 0
je 0x413a57
movzx eax, word [ebx + 0x10e]
mov ecx, ebx
test edx, edx
je 0x413897
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ecx, dword [ecx + eax*4 + 0x110]
mov ebx, dword [ebx + 0x110]
dec edx
movzx eax, word [ecx + 0x10e]
jne 0x413880
mov edx, ebx
jmp 0x413a5d
mov edx, dword [0x424d9c]
xor eax, eax
xor ecx, ecx
mov dword [esi + 0x14], 0
mov dword [esi + 0xa8], edx
mov dword [esi + 0xac], ecx
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0x68]
mov dword [esi + 0xb0], eax
mov dword [esi + 0xc], edx
lea eax, [ecx + 0x28]
mov ecx, dword [ecx + 0x28]
test ecx, ecx
cmove eax, ecx
je 0x413a3a
mov edx, dword [eax]
mov ecx, dword [eax + 8]
xor eax, eax
add ecx, edx
mov dword [esi + 0x4c], edx
mov dword [esi], ecx
jmp 0x4138fb
xor eax, eax
test di, di
je 0x413a1b
mov di, 1
test ax, ax
jne 0x4138f0
cmp edx, ecx
je 0x414043
movzx ecx, byte [edx]
lea eax, [edx + 1]
movzx ebx, cl
test cl, cl
js 0x413923
mov ecx, dword [esi]
mov edx, eax
xor eax, eax
mov edi, ebx
jmp 0x4138f2
cmp eax, dword [esi]
je 0x413968
movzx eax, byte [edx + 1]
add edx, 2
and eax, 0x3f
and ebx, 0x1f
cmp cl, 0xe0
jb 0x413974
cmp edx, dword [esi]
je 0x413985
mov dword [esi + 0x18], eax
movzx eax, byte [edx]
inc edx
mov dword [esi + 4], eax
mov eax, dword [esi + 0x18]
and dword [esi + 4], 0x3f
shl eax, 6
add eax, dword [esi + 4]
cmp cl, 0xf0
jb 0x413999
mov ecx, dword [esi]
cmp edx, ecx
je 0x4139ae
movzx ecx, byte [edx]
inc edx
and ecx, 0x3f
jmp 0x4139b2
mov edx, dword [esi]
xor eax, eax
and ebx, 0x1f
cmp cl, 0xe0
jae 0x413939
shl ebx, 6
or ebx, eax
mov ecx, dword [esi]
cmp ebx, 0xffff
ja 0x4139cf
jmp 0x41391d
mov edx, dword [esi]
mov dword [esi + 4], 0
shl eax, 6
add eax, dword [esi + 4]
cmp cl, 0xf0
jae 0x413959
shl ebx, 0xc
or ebx, eax
mov ecx, dword [esi]
cmp ebx, 0xffff
jbe 0x41391d
jmp 0x4139cf
mov edx, ecx
xor ecx, ecx
and ebx, 7
shl eax, 6
shl ebx, 0x12
or eax, ebx
or eax, ecx
mov ebx, eax
mov ecx, dword [esi]
cmp ebx, 0xffff
jbe 0x41391d
and ebx, 0x3ff
or ebx, 0xdc00
mov eax, ebx
jmp 0x4138f2
mov eax, dword [esi + 0x48]
movsd xmm0, qword [esi + 0x40]
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0xac]
movsd qword [esi + 0xc8], xmm0
test eax, eax
je 0x413a10
push 1
push eax
push dword [esi + 8]
call fcn.004036f0
add esp, 0xc
mov eax, dword [esi + 0xc8]
jmp 0x413549
mov eax, dword [esi + 0x64]
mov edi, dword [esi + 0xc]
mov dword [eax + 4], 0xb02
mov dword [eax + 8], 0x426194
mov dword [eax], 1
jmp 0x41447c
mov dword [esi + 0x168], 0x16
mov dword [esi + 0xb4], 0
xor ecx, ecx
xor edx, edx
jmp 0x4140ab
xor edi, edi
xor ecx, ecx
xor edx, edx
mov dword [esi + 0x6c], 0
mov dword [esi + 0x70], edx
mov dword [esi + 0x74], 0
mov dword [esi + 0x78], 0
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x80], eax
mov eax, dword [0x424d9c]
mov dword [esi + 0xc4], eax
xor eax, eax
test edi, edi
je 0x413f84
dec edi
mov ebx, eax
test edx, edx
lea eax, [esi + 0x6c]
cmove eax, edx
mov dword [esi + 0x4c], edi
mov dword [esi + 0x84], edi
je 0x4145d8
movzx ecx, word [edx + 0x10e]
mov dword [esi + 4], eax
mov eax, dword [eax]
cmp ebx, ecx
jae 0x413af2
mov ecx, ebx
mov edi, edx
test eax, eax
je 0x413b66
mov edx, ecx
mov ecx, dword [edi + ecx*4 + 0x114]
dec eax
je 0x413ae9
nop word cs:[eax + eax]
nop
mov ecx, dword [ecx + 0x110]
dec eax
jne 0x413ae0
mov dword [esi + 0xc], ecx
xor eax, eax
mov ecx, edx
jmp 0x413b6c
nop word cs:[eax + eax]
nop dword [eax]
mov edi, dword [edx]
test edi, edi
je 0x413b20
movzx ecx, word [edx + 0x10c]
lea ebx, [eax + 1]
mov dword [esi], ebx
jmp 0x413b22
xor edi, edi
test eax, eax
mov eax, 0x140
mov ebx, 0x110
cmove eax, ebx
test eax, eax
je 0x413b49
mov ebx, 4
push ebx
push eax
push edx
mov ebx, ecx
call fcn.004036f0
mov ecx, ebx
add esp, 0xc
test edi, edi
je 0x413ba6
movzx eax, word [edi + 0x10e]
mov edx, edi
cmp ecx, eax
mov eax, dword [esi]
jae 0x413b00
mov eax, dword [esi]
test eax, eax
jne 0x413ac9
lea eax, [ecx + 1]
mov dword [esi + 0xc], edi
lea ecx, [ecx + ecx*2]
lea edx, [edi + ecx*4 + 4]
mov ebx, dword [edi + ecx*4 + 8]
mov ecx, dword [edi + ecx*4 + 0xc]
movq xmm0, qword [edx + 0x84]
mov edi, dword [edx]
mov dword [esi + 0xb4], ecx
mov ecx, dword [edx + 0x8c]
mov edx, dword [esi + 0xc]
mov dword [esi + 0xb8], ebx
movq qword [esi + 0x20], xmm0
mov dword [esi + 0x28], ecx
mov ecx, eax
jmp 0x413bab
mov edi, dword [esi + 0x14]
xor edx, edx
mov eax, dword [esi + 0x28]
movsd xmm0, qword [esi + 0x20]
mov ebx, dword [esi + 4]
test edi, edi
mov dword [esi + 4], ecx
mov dword [esi + 0x98], eax
movsd qword [esi + 0x90], xmm0
mov dword [ebx], 0
mov dword [esi + 0x70], edx
mov dword [esi + 0x74], ecx
je 0x414399
mov eax, dword [esi + 0x98]
movq xmm0, qword [esi + 0x90]
mov ecx, edi
mov dword [esi + 0xc], edx
mov dword [esi + 0x14], edi
mov dword [esi + 0xb0], eax
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0xb4]
movq qword [esi + 0xa8], xmm0
movq qword [esi + 0x40], xmm0
lea ebx, [edi + eax]
xor eax, eax
mov dword [esi], ebx
jmp 0x413c2b
xor eax, eax
test dx, dx
je 0x413f96
mov dx, 1
test ax, ax
jne 0x413c20
cmp ecx, ebx
je 0x413d0e
movzx eax, byte [ecx]
lea ebx, [ecx + 1]
movzx edi, al
test al, al
js 0x413c53
mov ecx, ebx
mov ebx, dword [esi]
xor eax, eax
mov edx, edi
jmp 0x413c22
cmp ebx, dword [esi]
je 0x413c96
movzx ebx, byte [ecx + 1]
add ecx, 2
and ebx, 0x3f
and edi, 0x1f
cmp al, 0xe0
jb 0x413ca1
cmp ecx, dword [esi]
je 0x413cb2
mov dword [esi + 0x60], ebx
movzx ebx, byte [ecx]
inc ecx
mov dword [esi + 8], ebx
mov ebx, dword [esi + 0x60]
and dword [esi + 8], 0x3f
shl ebx, 6
add ebx, dword [esi + 8]
cmp al, 0xf0
jb 0x413cc5
mov eax, dword [esi]
cmp ecx, eax
je 0x413cda
movzx eax, byte [ecx]
inc ecx
and eax, 0x3f
jmp 0x413cde
mov ecx, dword [esi]
xor ebx, ebx
and edi, 0x1f
cmp al, 0xe0
jae 0x413c68
shl edi, 6
or edi, ebx
mov ebx, dword [esi]
cmp edi, 0xffff
ja 0x413cfb
jmp 0x413c4d
mov ecx, dword [esi]
mov dword [esi + 8], 0
shl ebx, 6
add ebx, dword [esi + 8]
cmp al, 0xf0
jae 0x413c87
shl edi, 0xc
or edi, ebx
mov ebx, dword [esi]
cmp edi, 0xffff
jbe 0x413c4d
jmp 0x413cfb
mov ecx, eax
xor eax, eax
and edi, 7
shl ebx, 6
shl edi, 0x12
or ebx, edi
or ebx, eax
mov edi, ebx
mov ebx, dword [esi]
cmp edi, 0xffff
jbe 0x413c4d
and edi, 0x3ff
or edi, 0xdc00
mov eax, edi
jmp 0x413c22
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0xb8]
mov ecx, dword [esi + 0xb4]
mov dword [esi + 0x168], 0x12
mov dword [esi + 0x20], edx
mov dword [esi + 0x90], edx
mov dword [esi + 0x94], eax
mov dword [esi + 0x98], ecx
lea ecx, [esi + 0x50]
lea edx, [esi + 0x20]
mov dword [esi + 0x24], ebx
mov word [esi + 0x28], 0
call fcn.004077a0
mov eax, dword [esi + 0xb8]
test eax, eax
je 0x413d68
push 1
push eax
push dword [esi + 0x14]
call fcn.004036f0
add esp, 0xc
mov edx, dword [esi + 0x58]
cmp edx, dword [esi + 0x54]
jne 0x413d8e
mov byte [esi + 0x13], 1
mov dword [esi + 0x168], 0x11
lea ecx, [esi + 0x50]
push 1
call fcn.004228a0
add esp, 4
mov edx, dword [esi + 0x58]
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 4]
mov word [eax + edx*2], 0x3d
mov dword [esi + 0xc4], eax
inc edx
mov eax, dword [esi + 0x44]
mov dword [esi + 0x58], edx
mov edx, dword [esi + 0x40]
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0xd4], edx
lea ebx, [edx + eax]
mov dword [esi + 0x14c], eax
xor eax, eax
mov dword [esi], ebx
jmp 0x413ddb
xor eax, eax
test di, di
je 0x413fd3
mov di, 1
test ax, ax
jne 0x413dd0
cmp edx, ebx
je 0x413edd
movzx eax, byte [edx]
lea ecx, [edx + 1]
movzx ebx, al
test al, al
js 0x413e0e
mov edx, ecx
mov ecx, dword [esi + 4]
xor eax, eax
mov edi, ebx
mov ebx, dword [esi]
test di, di
jne 0x413ddb
jmp 0x413fd3
cmp ecx, dword [esi]
je 0x413e57
movzx ecx, byte [edx + 1]
add edx, 2
and ecx, 0x3f
and ebx, 0x1f
cmp al, 0xe0
jb 0x413e62
cmp edx, dword [esi]
je 0x413e74
mov dword [esi + 0x150], ecx
movzx ecx, byte [edx]
inc edx
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0x150]
and dword [esi + 8], 0x3f
shl ecx, 6
add ecx, dword [esi + 8]
cmp al, 0xf0
jb 0x413e87
mov eax, dword [esi]
cmp edx, eax
je 0x413e9d
movzx eax, byte [edx]
inc edx
and eax, 0x3f
jmp 0x413ea1
mov edx, dword [esi]
xor ecx, ecx
and ebx, 0x1f
cmp al, 0xe0
jae 0x413e23
shl ebx, 6
or ebx, ecx
mov ecx, dword [esi + 4]
cmp ebx, 0xffff
ja 0x413ebf
jmp 0x413dfe
mov edx, dword [esi]
mov dword [esi + 8], 0
shl ecx, 6
add ecx, dword [esi + 8]
cmp al, 0xf0
jae 0x413e48
shl ebx, 0xc
or ebx, ecx
mov ecx, dword [esi + 4]
cmp ebx, 0xffff
jbe 0x413dfe
jmp 0x413ebf
mov edx, eax
xor eax, eax
and ebx, 7
shl ecx, 6
shl ebx, 0x12
or ecx, ebx
or ecx, eax
mov ebx, ecx
mov ecx, dword [esi + 4]
cmp ebx, 0xffff
jbe 0x413dfe
and ebx, 0x3ff
or ebx, 0xdc00
mov eax, ebx
mov ebx, dword [esi]
test di, di
jne 0x413ddb
jmp 0x413fd3
mov edx, dword [esi + 0xd4]
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x14c]
mov dword [esi + 0x168], 0x13
mov dword [esi + 0x20], edx
mov dword [esi + 0x90], edx
mov dword [esi + 0x94], eax
mov dword [esi + 0x98], ecx
lea ecx, [esi + 0x50]
lea edx, [esi + 0x20]
mov dword [esi + 0x24], ebx
mov word [esi + 0x28], 0
call fcn.004077a0
mov eax, dword [esi + 0x60]
test eax, eax
je 0x413f37
push 1
push eax
push dword [esi + 0xd4]
call fcn.004036f0
add esp, 0xc
mov edx, dword [esi + 0x58]
cmp edx, dword [esi + 0x54]
jne 0x413f5d
mov byte [esi + 0x13], 0
mov dword [esi + 0x168], 0x11
lea ecx, [esi + 0x50]
push 1
call fcn.004228a0
add esp, 4
mov edx, dword [esi + 0x58]
mov ecx, dword [esi + 0x50]
mov edi, dword [esi + 0x4c]
mov eax, dword [esi + 4]
mov word [ecx + edx*2], 0
inc edx
mov dword [esi + 0xc4], ecx
mov dword [esi + 8], edx
mov dword [esi + 0x58], edx
mov edx, dword [esi + 0xc]
test edi, edi
jne 0x413a93
xor ecx, ecx
test edx, edx
mov dword [esi + 4], eax
jne 0x41439c
jmp 0x4143b6
mov eax, dword [esi + 0xb8]
test eax, eax
je 0x413fae
push 1
push eax
push dword [esi + 0x14]
call fcn.004036f0
add esp, 0xc
mov eax, dword [esi + 0x40]
mov edx, dword [esi + 0xc]
test eax, eax
je 0x413fce
mov ecx, dword [esi + 0x44]
test ecx, ecx
je 0x413fce
push 1
push ecx
push eax
call fcn.004036f0
mov edx, dword [esi + 0xc]
add esp, 0xc
mov ecx, dword [esi + 4]
jmp 0x413ff1
mov eax, dword [esi + 0x60]
test eax, eax
je 0x413fee
push 1
push eax
push dword [esi + 0xd4]
call fcn.004036f0
mov ecx, dword [esi + 4]
add esp, 0xc
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x28], ecx
mov ecx, dword [esi + 0x4c]
mov dword [esi + 0x2c], ecx
lea ecx, [esi + 0x20]
call fcn.00403db0
mov eax, dword [esi + 0x54]
test eax, eax
je 0x414027
add eax, eax
je 0x414027
push 2
push eax
push dword [esi + 0xc4]
call fcn.004036f0
add esp, 0xc
mov eax, dword [esi + 0x64]
mov dword [eax + 4], 0xb02
mov dword [eax + 8], 0x426194
mov dword [eax], 1
jmp 0x414493
mov eax, dword [esi + 0x4c]
lea edx, [esi + 0x6c]
mov dword [esi + 0x168], 0x14
mov dword [esi + 0x6c], eax
mov dword [esi + 0x70], ecx
lea ecx, [esi + 0x20]
mov word [esi + 0x74], 0
call fcn.004050f0
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x28]
cmp edx, ecx
jne 0x41408e
mov dword [esi + 0x168], 0x15
lea ecx, [esi + 0x20]
push 1
call fcn.004228a0
add esp, 4
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x20]
mov word [eax + edx*2], 0
inc edx
mov dword [esi + 0x168], 0x16
mov dword [esi + 0x18], eax
mov dword [esi + 0xb4], eax
mov eax, dword [esi + 0x18]
pxor xmm0, xmm0
mov dword [esi + 4], ecx
movdqa xmmword [esi + 0x20], xmm0
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], ecx
mov dword [esi + 0x48], edx
push 0x42b120
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov eax, dword [esi + 0x68]
mov dword [esi + 0x6c], 0
mov dword [esi + 0x74], 0
mov dword [esi + 0x154], 0x42b120
mov dword [esi + 0x7c], 0
mov dword [esi + 0x50], 1
xor edi, edi
lea ebx, [esi + 0xbc]
mov edx, dword [eax + 0x38]
lea ecx, [eax + 0x38]
cmp edx, 4
mov dword [esi], edx
lea edx, [esi + 0xc0]
cmove ecx, edi
cmp byte [ebp + 0xc], 0
lea edi, [esi + 0x50]
cmovne edi, ebx
lea ebx, [esi + 0x54]
cmovne ebx, edx
cmp dword [esi], 4
mov edx, 0
cmovne edi, ecx
lea ecx, [ecx + 4]
cmove ecx, ebx
mov ebx, ecx
mov ecx, dword [eax + 0x40]
mov dword [esi + 0x4c], ecx
cmp ecx, 4
lea ecx, [eax + 0x40]
cmove ecx, edx
mov dword [esi], ecx
mov ecx, dword [eax + 0x48]
add eax, 0x48
cmp ecx, 4
mov dword [esi + 0xb8], ecx
lea ecx, [esi + 0x90]
cmove eax, edx
mov edx, dword [edi]
mov dword [esi + 0x68], eax
lea eax, [esi + 0x6c]
push eax
push 0xfffffffffffffff6
push dword [ebx]
call fcn.00414a10
add esp, 0xc
mov edx, dword [esi + 0x94]
cmp dword [esi + 0x90], 1
jne 0x4141a2
mov ecx, dword [esi + 0x64]
mov eax, dword [esi + 0x98]
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 4]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov dword [ecx], 1
jmp 0x41442f
mov edi, dword [esi]
cmp dword [esi + 0x4c], 4
mov dword [esi + 0x60], edx
lea edx, [esi + 0xbc]
lea eax, [esi + 0x74]
lea ecx, [edi + 4]
cmove edi, edx
mov edx, dword [edi]
lea edi, [esi + 0xc0]
cmove ecx, edi
mov edi, dword [ecx]
mov dword [esi + 0x168], 0x17
lea ecx, [esi + 0x90]
push eax
push 0xfffffffffffffff5
push edi
call fcn.00414a10
add esp, 0xc
mov edx, dword [esi + 0x94]
cmp dword [esi + 0x90], 1
mov eax, dword [esi + 0x68]
jne 0x414212
mov ecx, dword [esi + 0x64]
mov edi, dword [esi + 0xc]
mov eax, dword [esi + 0x98]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov dword [ecx], 1
jmp 0x414424
cmp dword [esi + 0xb8], 4
lea ecx, [esi + 0xbc]
mov dword [esi], edx
lea edx, [esi + 0xc0]
lea edi, [esi + 0x7c]
cmovne ecx, eax
lea eax, [eax + 4]
cmove eax, edx
mov edx, dword [ecx]
lea ecx, [esi + 0x90]
mov eax, dword [eax]
mov dword [esi + 0x168], 0x18
push edi
push 0xfffffffffffffff4
push eax
call fcn.00414a10
add esp, 0xc
mov ebx, dword [esi + 0x94]
cmp dword [esi + 0x90], 1
jne 0x41427c
mov ecx, dword [esi + 0x64]
mov eax, dword [esi + 0x98]
mov dword [ecx + 4], ebx
mov dword [ecx + 8], eax
mov dword [ecx], 1
jmp 0x414419
mov edi, dword [esi + 0x60]
mov eax, dword [esi]
mov edx, dword [esi + 0xdc]
lea ecx, [esi + 0xf8]
mov dword [esi + 0x130], edi
mov dword [esi + 0x134], eax
lea eax, [esi + 0x20]
mov dword [esi + 0x138], ebx
push eax
push ecx
push dword [esi + 0xb4]
push dword [esi + 0x14]
push dword [esi + 0xd8]
push 1
push 0
push 0
mov dword [esi + 0x14], edx
push edx
push 0
call sub.KERNEL32.dll_CreateProcessW
test eax, eax
je 0x4143fb
push dword [esi + 0x24]
call sub.KERNEL32.dll_CloseHandle
movsd xmm1, qword [esi + 0x74]
mov ecx, dword [esi + 0x64]
mov eax, dword [esi + 0x20]
movq xmm0, qword [esi + 0x6c]
movsd qword [ecx + 0x10], xmm1
movq xmm1, qword [esi + 0x7c]
movq qword [ecx + 8], xmm0
movq qword [ecx + 0x18], xmm1
mov dword [ecx + 4], eax
mov dword [ecx], 0
push ebx
call sub.KERNEL32.dll_CloseHandle
push dword [esi]
call sub.KERNEL32.dll_CloseHandle
push edi
call sub.KERNEL32.dll_CloseHandle
push 0x42b120
call sub.KERNEL32.dll_ReleaseSRWLockExclusive
mov eax, dword [esi + 4]
test eax, eax
je 0x414337
add eax, eax
je 0x414337
push 2
push eax
push dword [esi + 0x18]
call fcn.004036f0
add esp, 0xc
mov eax, dword [esi + 8]
test eax, eax
je 0x414350
add eax, eax
je 0x414350
push 2
push eax
push dword [esi + 0xc]
call fcn.004036f0
add esp, 0xc
mov eax, dword [esi + 0xe0]
test eax, eax
je 0x41436c
add eax, eax
je 0x41436c
push 2
push eax
push dword [esi + 0x14]
call fcn.004036f0
add esp, 0xc
mov eax, dword [esi + 0xc8]
test eax, eax
je 0x41378a
mov ecx, dword [esi + 0xcc]
test ecx, ecx
je 0x41378a
push 1
push ecx
push eax
call fcn.004036f0
add esp, 0xc
jmp 0x41378a
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], edx
mov edx, dword [esi + 4]
mov dword [esi + 0x28], edx
mov dword [esi + 0x2c], ecx
lea ecx, [esi + 0x20]
call fcn.00403db0
mov edx, dword [esi + 8]
cmp edx, dword [esi + 0x54]
jne 0x4143dd
mov dword [esi + 0x168], 0xf
lea ecx, [esi + 0x50]
push 1
call fcn.004228a0
add esp, 4
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x58]
jmp 0x4143e3
mov eax, dword [esi + 0xc4]
mov word [eax + edx*2], 0
mov eax, dword [esi + 0x58]
mov edx, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
inc eax
mov dword [esi + 0x14], edx
jmp 0x4138af
call sub.KERNEL32.dll_GetLastError
mov ecx, dword [esi + 0x64]
mov dword [ecx + 8], eax
mov dword [ecx + 4], 0
mov dword [ecx], 1
push ebx
call sub.KERNEL32.dll_CloseHandle
mov edi, dword [esi + 0xc]
mov eax, dword [esi]
push eax
call sub.KERNEL32.dll_CloseHandle
mov ebx, dword [esi + 4]
push dword [esi + 0x60]
call sub.KERNEL32.dll_CloseHandle
cmp dword [esi + 0x6c], 0
je 0x41443d
push dword [esi + 0x70]
call sub.KERNEL32.dll_CloseHandle
cmp dword [esi + 0x74], 0
je 0x41444b
push dword [esi + 0x78]
call sub.KERNEL32.dll_CloseHandle
cmp dword [esi + 0x7c], 0
je 0x41445c
push dword [esi + 0x80]
call sub.KERNEL32.dll_CloseHandle
push 0x42b120
call sub.KERNEL32.dll_ReleaseSRWLockExclusive
test ebx, ebx
je 0x41447c
add ebx, ebx
je 0x41447c
push 2
push ebx
push dword [esi + 0x18]
call fcn.004036f0
add esp, 0xc
mov eax, dword [esi + 8]
test eax, eax
je 0x414493
add eax, eax
je 0x414493
push 2
push eax
push edi
call fcn.004036f0
add esp, 0xc
mov eax, dword [esi + 0xe0]
test eax, eax
je 0x4144c1
mov ecx, dword [esi + 0xdc]
xor ebx, ebx
test ecx, ecx
je 0x413701
add eax, eax
je 0x413701
push 2
push eax
push ecx
call fcn.004036f0
add esp, 0xc
xor ebx, ebx
jmp 0x413701
mov dword [esi + 0x168], 1
call fcn.0041d530
jmp 0x4145f6
mov dword [esi + 0x168], 2
call fcn.0041d530
jmp 0x4145f6
mov dword [esi + 0x168], 7
push 0x4261c4
push 0x2b
push str.called__Option::unwrap____on_a__None__value
call fcn.00422f10
add esp, 0xc
jmp 0x4145f6
push 1
push edi
jmp 0x41451b
push 1
push ebx
call fcn.00422e00
add esp, 8
ud2
mov dword [esi + 0x168], 4
push 0x424b14
push 0x21
push str.assertion_failed:_self.height___0
call fcn.00422f10
add esp, 0xc
jmp 0x4145f6
mov dword [esi + 0x168], 4
push 0x4249b4
push 0x2b
push str.called__Option::unwrap____on_a__None__value
call fcn.00422f10
add esp, 0xc
jmp 0x4145f6
call sub.KERNEL32.dll_GetLastError
mov dword [esi + 0x70], eax
lea eax, [esi + 0x6c]
mov dword [esi + 0xf8], 0x4260c0
mov dword [esi + 0xfc], 1
mov dword [esi + 0x6c], 0
mov dword [esi + 0x100], 0
mov dword [esi + 0x168], 5
mov dword [esi + 0x20], eax
lea eax, [esi + 0x20]
mov dword [esi + 0x24], 0x409f80
mov dword [esi + 0x108], eax
mov dword [esi + 0x10c], 1
lea eax, [esi + 0xf8]
push 0x4260c8
push eax
call fcn.00422d90
add esp, 8
jmp 0x4145f6
mov dword [esi + 0x168], 0x10
push 0x42465c
push 0x2b
push str.called__Option::unwrap____on_a__None__value
call fcn.00422f10
add esp, 0xc
ud2