Function at 0x436510
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
sub esp, 0x568
call 0x436521
pop eax
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x43e4b0
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x70], eax
mov eax, dword fs:[0]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, dword [edx + 0x4c]
mov dword [ebp - 0x150], eax
movzx eax, byte [edx + 0x50]
test al, al
jne 0x436582
test esi, esi
jne 0x436582
mov dword [ebp - 0x160], 0
xor edi, edi
mov esi, dword [edx + 0x20]
test esi, esi
jne 0x436eab
jmp 0x436f0c
test al, al
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf4], 0
jne 0x436723
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
test eax, eax
je 0x438f82
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x80], eax
nop dword [eax + eax]
lea eax, [ebp - 0x80]
mov dword [ebp - 0x10], 5
push eax
lea eax, [ebp - 0x574]
push eax
call fcn.004349f0
add esp, 8
mov eax, dword [ebp - 0x574]
lea ecx, [ebp - 0xa8]
lea edx, [ebp - 0x13c]
cmp eax, 0x80000000
je 0x436711
movq xmm0, qword [ebp - 0x56c]
mov edi, dword [ebp - 0x570]
mov esi, dword [ebp - 0x564]
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0x558]
mov dword [ebp - 0x10], 7
movd eax, xmm0
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x560]
mov dword [ebp - 0x13c], edi
movdqu xmmword [ebp - 0x110], xmm0
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], edi
add eax, edi
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x55c]
mov word [ebp - 0x134], 0
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x40], eax
call fcn.004293d0
mov eax, dword [ebp - 0x34]
movups xmm0, xmmword [ebp - 0x110]
lea ecx, [ebp - 0xe0]
mov byte [ebp - 0x51], 0
mov dword [ebp - 0x10], 6
lea edx, [ebp - 0xfc]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xa0]
movlps qword [ebp - 0xe8], xmm0
movq xmm0, qword [ebp - 0xa8]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x24]
movq qword [ecx], xmm0
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x13c]
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.004261e0
add esp, 8
mov eax, dword [ebp - 0xa8]
test eax, 0x7fffffff
je 0x4365c0
push 1
push eax
push dword [ebp - 0xa4]
call fcn.0040ad50
add esp, 0xc
jmp 0x4365c0
push dword [ebp - 0x84]
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov edx, dword [ebp - 0x74]
mov esi, dword [ebp - 0x48]
mov eax, dword [edx + 0x44]
mov ecx, dword [edx + 0x48]
xor edx, edx
test eax, eax
setne dl
cmove esi, eax
mov dword [ebp - 0xa8], edx
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x88], esi
mov dword [ebp - 0x10], 1
nop dword [eax + eax]
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x10], 1
call fcn.00423f40
mov edi, eax
test eax, eax
je 0x436ce7
cmp dword [edx], 0x80000000
mov esi, edx
jne 0x436900
mov edx, dword [ebp - 0xfc]
test edx, edx
je 0x436780
mov eax, dword [ebp - 0xf8]
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x30], edx
push dword [edi + 0x18]
push dword [edi + 0x14]
mov dword [ebp - 0x24], eax
push eax
call fcn.00428a80
add esp, 0xc
cmp dword [ebp - 0x84], 0
jne 0x436780
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x78]
mov byte [ebp - 0x144], 0
test ecx, ecx
jne 0x436837
mov dword [ebp - 0xf0], eax
lea eax, [ebp - 0x144]
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe8], edx
lea ecx, [ebp - 0x574]
lea edx, [ebp - 0xf0]
push eax
call fcn.00428260
add esp, 4
jmp 0x436bce
movzx edx, word [eax + 0x1ea]
mov eax, dword [eax + edx*4 + 0x1ec]
dec ecx
jne 0x436830
movzx ecx, word [eax + 0x1ea]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x144]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x10], 1
lea edx, [ebp - 0x60]
dec ecx
mov dword [ebp - 0x58], ecx
lea ecx, [ebp - 0x574]
push eax
call fcn.00428260
add esp, 4
movsd xmm2, qword [ebp - 0x55c]
movsd xmm1, qword [ebp - 0x564]
mov eax, dword [ebp - 0x54c]
movq xmm0, qword [ebp - 0x554]
mov edx, dword [ebp - 0x548]
mov ecx, dword [ebp - 0x540]
movsd qword [ebp - 0x124], xmm2
movsd qword [ebp - 0x12c], xmm1
movsd xmm2, qword [ebp - 0x574]
movsd xmm1, qword [ebp - 0x56c]
mov dword [ebp - 0x114], eax
movq qword [ebp - 0x11c], xmm0
movsd qword [ebp - 0x134], xmm1
movsd qword [ebp - 0x13c], xmm2
movzx eax, word [edx + 0x1ea]
cmp ecx, eax
jae 0x436a89
mov eax, edx
jmp 0x436ab3
mov ecx, dword [edi + 8]
mov ebx, dword [edi + 4]
test ecx, ecx
mov dword [ebp - 0x24], ecx
je 0x436932
js 0x438eb3
movzx eax, byte [0x510121]
push 1
push ecx
call fcn.0040ad40
add esp, 8
test eax, eax
je 0x438eac
mov ecx, dword [ebp - 0x24]
jmp 0x436937
mov eax, 1
push ecx
push ebx
mov dword [ebp - 0x30], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [edi + 0x18]
movzx eax, byte [edi + 0xc]
mov ecx, dword [edi + 0x14]
test ebx, ebx
mov byte [ebp - 0x34], al
je 0x43698f
mov dword [ebp - 0x2c], ecx
lea ecx, [ebx + ebx]
cmp ebx, 0x3fffffff
mov dword [ebp - 0x28], ecx
ja 0x438ecd
movzx eax, byte [0x510121]
push 2
push ecx
call fcn.0040ad40
add esp, 8
test eax, eax
je 0x438ec6
mov edi, eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
jmp 0x436996
mov edi, 2
xor eax, eax
push eax
push ecx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x574], eax
mov dword [ebp - 0x570], ecx
mov dword [ebp - 0x56c], eax
movzx eax, byte [ebp - 0x34]
mov byte [ebp - 0x568], al
mov dword [ebp - 0x564], ebx
mov dword [ebp - 0x560], edi
mov dword [ebp - 0x55c], ebx
mov ebx, dword [esi + 8]
mov eax, dword [esi + 4]
test ebx, ebx
je 0x436a09
mov dword [ebp - 0x24], eax
js 0x438ea8
movzx eax, byte [0x510121]
push 1
push ebx
call fcn.0040ad40
add esp, 8
test eax, eax
je 0x438ee7
mov edi, eax
mov eax, dword [ebp - 0x24]
jmp 0x436a0e
mov edi, 1
push ebx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movzx eax, byte [esi + 0xc]
mov dword [ebp - 0xf0], ebx
mov dword [ebp - 0xec], edi
mov dword [ebp - 0xe8], ebx
mov byte [ebp - 0x52], 0
mov dword [ebp - 0x10], 2
lea ecx, [ebp - 0x13c]
lea edx, [ebp - 0xfc]
mov byte [ebp - 0xe4], al
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0x574]
push eax
call fcn.004261e0
add esp, 8
mov eax, dword [ebp - 0x13c]
test eax, 0x7fffffff
je 0x436780
push 1
push eax
push dword [ebp - 0x138]
call fcn.0040ad50
add esp, 0xc
jmp 0x436780
mov esi, dword [ebp - 0x544]
nop
mov eax, dword [edx + 0xb0]
test eax, eax
je 0x436aaf
movzx ecx, word [edx + 0x1e8]
inc esi
mov edx, eax
cmp cx, word [eax + 0x1ea]
jae 0x436a90
jmp 0x436ab3
xor eax, eax
mov ecx, esi
lea edx, [ecx + ecx*8]
lea edx, [edx + edx*2]
add edx, ecx
shl ecx, 4
mov esi, dword [eax + edx + 0xcc]
mov dword [ebp - 0xd8], esi
mov esi, dword [ebp - 0x124]
movsd xmm0, qword [eax + edx + 0xc4]
movsd qword [ebp - 0xe0], xmm0
movsd xmm0, qword [eax + edx + 0xb4]
movsd xmm1, qword [eax + edx + 0xbc]
movsd qword [ebp - 0xe8], xmm1
movsd qword [ebp - 0xf0], xmm0
mov dword [eax + edx + 0xcc], esi
lea esi, [ebp - 0x120]
movsd xmm0, qword [ebp - 0x12c]
movsd qword [eax + edx + 0xc4], xmm0
movsd xmm0, qword [ebp - 0x13c]
movsd xmm1, qword [ebp - 0x134]
movsd qword [eax + edx + 0xbc], xmm1
movsd qword [eax + edx + 0xb4], xmm0
lea edx, [ebp - 0xd4]
movsd xmm0, qword [eax + ecx]
movsd xmm1, qword [eax + ecx + 8]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [eax + ecx], xmm0
movsd qword [eax + ecx + 8], xmm1
movsd xmm1, qword [ebp - 0xe8]
mov eax, dword [ebp - 0xc8]
movq xmm0, qword [ebp - 0xf0]
movsd xmm2, qword [ebp - 0xd8]
movsd qword [ebp - 0x56c], xmm1
movsd xmm1, qword [ebp - 0xe0]
mov dword [ebp - 0x54c], eax
movq qword [ebp - 0x574], xmm0
movsd qword [ebp - 0x55c], xmm2
movsd qword [ebp - 0x564], xmm1
movsd xmm1, qword [ebp - 0xd0]
movsd qword [ebp - 0x554], xmm1
movsd xmm2, qword [ebp - 0x55c]
movsd xmm1, qword [ebp - 0x564]
mov eax, dword [ebp - 0x54c]
movq xmm0, qword [ebp - 0x554]
dec dword [ebp - 0xf4]
cmp byte [ebp - 0x144], 0
movsd qword [ebp - 0xd8], xmm2
movsd qword [ebp - 0xe0], xmm1
movsd xmm2, qword [ebp - 0x574]
movsd xmm1, qword [ebp - 0x56c]
mov dword [ebp - 0xc8], eax
movq qword [ebp - 0xd0], xmm0
movsd qword [ebp - 0xe8], xmm1
movsd qword [ebp - 0xf0], xmm2
je 0x436c74
mov edx, dword [ebp - 0x24]
test edx, edx
je 0x438f06
mov ecx, dword [ebp - 0x30]
dec edx
mov eax, dword [ecx + 0x1ec]
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xf8], edx
mov dword [eax + 0xb0], 0
push 4
push 0x21c
push ecx
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xec]
mov ebx, dword [ebp - 0xe0]
mov edi, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xd4]
cmp eax, 0x80000000
mov dword [ebp - 0x24], edx
je 0x436780
test eax, eax
je 0x436cb6
push 1
push eax
push ecx
call fcn.0040ad50
add esp, 0xc
test ebx, ebx
je 0x436cc8
add ebx, ebx
push 2
push ebx
push edi
call fcn.0040ad50
add esp, 0xc
test esi, 0x7fffffff
je 0x436780
push 1
push esi
push dword [ebp - 0x24]
call fcn.0040ad50
add esp, 0xc
jmp 0x436771
movq xmm0, qword [ebp - 0xfc]
mov eax, dword [ebp - 0xf4]
movq qword [ebp - 0x15c], xmm0
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x160], 1
movzx eax, byte [0x510121]
push 1
push 4
call fcn.0040ad40
add esp, 8
test eax, eax
je 0x438f26
mov ecx, eax
mov dword [ebp - 0xf0], eax
lea edx, [ebp - 0xf0]
mov dword [eax], 0x48544150
mov dword [ebp - 0x10], 0x16
mov dword [ebp - 0x110], eax
add ecx, 4
mov dword [ebp - 0xec], ecx
lea ecx, [ebp - 0x13c]
mov word [ebp - 0xe8], 0
call fcn.004293d0
mov eax, dword [ebp - 0x134]
mov ecx, dword [ebp - 0x110]
movq xmm0, qword [ebp - 0x13c]
mov dword [ebp - 0x574], 4
mov edx, dword [ebp - 0x15c]
xor edi, edi
mov dword [ebp - 0x570], ecx
mov dword [ebp - 0x56c], 4
mov byte [ebp - 0x568], 0
movq qword [ebp - 0x564], xmm0
mov dword [ebp - 0x55c], eax
mov dword [ebp - 0x34], eax
test edx, edx
mov eax, dword [ebp - 0x560]
mov dword [ebp - 0x30], eax
je 0x436e7a
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x28], eax
movzx esi, word [edx + 0x1ea]
lea ecx, [edx + 0xb4]
mov ebx, 0xffffffff
mov dword [ebp - 0x2c], edx
lea eax, [esi + esi*8]
mov dword [ebp - 0x40], esi
lea edi, [eax + eax*2]
add edi, esi
lea esi, [edx - 8]
nop word cs:[eax + eax]
nop dword [eax + eax]
test edi, edi
je 0x436e40
lea eax, [ecx + 0x1c]
mov dword [ebp - 0x24], eax
push 1
push dword [ecx + 0x18]
push dword [ecx + 0x14]
push dword [ebp - 0x34]
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_CompareStringOrdinal]
mov ecx, dword [ebp - 0x24]
add edi, 0xffffffe4
add esi, 0x10
inc ebx
cmp eax, 3
je 0x436e00
cmp eax, 1
jne 0x436e61
jmp 0x436e43
mov ebx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x28]
sub eax, 1
jb 0x437389
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
mov edx, dword [edx + ebx*4 + 0x1ec]
jmp 0x436dce
cmp eax, 2
jne 0x438e2b
mov edi, dword [esi - 4]
mov eax, dword [esi]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x110]
jmp 0x436e7a
push 1
push 4
push ecx
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0x564]
test eax, eax
je 0x436ea1
add eax, eax
push 2
push eax
push dword [ebp - 0x30]
call fcn.0040ad50
add esp, 0xc
mov edx, dword [ebp - 0x74]
mov esi, dword [edx + 0x20]
test esi, esi
je 0x436f0c
mov edx, dword [edx + 0x1c]
mov eax, 0x43cbc0
cmp esi, 4
mov dword [ebp - 0x28], edi
jb 0x436ee5
mov eax, dword [edx]
xor ecx, ecx
mov dword [ebp - 0x10], 9
bswap eax
cmp eax, 0x5c5c3f5c
setb cl
cmp eax, 0x5c5c3f5d
mov eax, 0x43cbc0
adc ecx, 0xffffffff
mov ecx, 0x43cbe0
cmove eax, ecx
movzx ecx, byte [esi + edx - 1]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x24], esi
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
mov dword [ebp - 0x2c], ecx
push ecx
call eax
add esp, 4
test al, al
je 0x436f90
mov byte [ebp - 0x5c], 2
mov dword [ebp - 0x58], 0x508c44
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x58]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov dword [edx + 8], 2
cmp dword [ebp - 0x160], 0
je 0x437049
mov ecx, dword [ebp - 0x15c]
test ecx, ecx
je 0x437021
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x570], 0
mov dword [ebp - 0x56c], ecx
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x568], edx
mov dword [ebp - 0x560], 0
mov dword [ebp - 0x55c], ecx
mov ecx, 1
mov dword [ebp - 0x558], edx
jmp 0x437025
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x30]
lea ebx, [edi + esi]
cmp esi, 3
mov dword [ebp - 0x34], ebx
jbe 0x437072
movzx eax, byte [ebx - 4]
mov ecx, eax
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
xor eax, eax
cmp cl, 0x2e
mov ecx, 0
jne 0x4370a0
movzx ecx, byte [ebx - 3]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x65
jne 0x437099
movzx ecx, byte [ebx - 2]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x78
jne 0x43709d
mov edx, dword [ebp - 0x2c]
mov ecx, edx
add cl, 0xbf
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, dl
cmp cl, 0x65
sete cl
jmp 0x4370a0
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x574], ecx
mov dword [ebp - 0x564], ecx
lea ecx, [ebp - 0x574]
mov dword [ebp - 0x554], eax
mov dword [ebp - 0x10], 0
call fcn.00424e60
cmp dword [ebp - 0x150], 4
jb 0x43705e
push dword [ebp - 0x14c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x568
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, esi
mov ecx, edi
nop word cs:[eax + eax]
test eax, eax
je 0x437204
movzx edx, byte [ecx]
cmp edx, 0x2f
je 0x437107
inc ecx
dec eax
cmp edx, 0x5c
jne 0x437080
jmp 0x437107
xor ecx, ecx
jmp 0x4370a0
xor ecx, ecx
nop
cmp esi, eax
je 0x437204
movzx edx, byte [edi + eax]
cmp edx, 0x2f
je 0x4370b7
inc eax
cmp edx, 0x5c
jne 0x4370a0
test cl, cl
je 0x437107
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
lea ecx, [ebp - 0x574]
mov edx, edi
push esi
call fcn.0043bd60
add esp, 4
mov edx, dword [ebp - 0x574]
mov eax, dword [ebp - 0x570]
mov ecx, dword [ebp - 0x56c]
cmp edx, 0x80000000
jne 0x437360
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x60], 0x80000000
jmp 0x4378ca
test esi, esi
js 0x438ffc
movzx eax, byte [0x510121]
push 1
push esi
call fcn.0040ad40
add esp, 8
test eax, eax
je 0x439000
mov ebx, eax
push esi
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [ebp - 0x574], esi
mov dword [ebp - 0x570], ebx
mov dword [ebp - 0x56c], esi
mov dword [ebp - 0x568], 0
mov dword [ebp - 0x10], 0x14
lea eax, [ebp - 0x574]
push 4
push str..exeprogram_not_found
push eax
mov dword [ebp - 0x28], ebx
call fcn.0043c9e0
add esp, 0xc
mov eax, dword [ebp - 0x574]
mov edx, dword [ebp - 0x570]
mov esi, dword [ebp - 0x56c]
mov byte [ebp - 0x53], 1
mov dword [ebp - 0x10], 0x13
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0x170], edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x2c], esi
push esi
call fcn.00439830
add esp, 4
cmp dword [ebp - 0xf0], 0x80000000
jne 0x4372d6
mov dword [ebp - 0x10], 0x15
push dword [ebp - 0x2c]
push dword [ebp - 0x24]
call fcn.0042e270
add esp, 8
test eax, eax
je 0x437355
cmp edx, 2
jne 0x4372f1
movzx ecx, word [eax]
cmp ecx, 0x2e2e
jne 0x4372f1
mov edi, 2
xor esi, esi
jmp 0x43782d
xor esi, esi
mov eax, edi
jmp 0x43721b
xor esi, esi
test dx, dx
je 0x4372c3
mov dx, 1
test si, si
jne 0x437210
cmp eax, ebx
je 0x43732c
movzx ebx, byte [eax]
movzx ecx, bl
test bl, bl
js 0x43723c
mov ebx, dword [ebp - 0x34]
inc eax
jmp 0x437291
movzx edi, byte [eax + 1]
and ecx, 0x1f
and edi, 0x3f
cmp bl, 0xdf
jbe 0x437283
movzx esi, byte [eax + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp bl, 0xf0
jb 0x43729a
movzx edi, byte [eax + 3]
and ecx, 7
shl esi, 6
add eax, 4
shl ecx, 0x12
and edi, 0x3f
or edi, esi
or ecx, edi
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x34]
cmp ecx, 0xffff
jbe 0x437291
jmp 0x4372b0
shl ecx, 6
mov ebx, dword [ebp - 0x34]
add eax, 2
or ecx, edi
mov edi, dword [ebp - 0x30]
xor esi, esi
mov edx, ecx
jmp 0x437212
shl ecx, 0xc
add eax, 3
or ecx, esi
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x34]
cmp ecx, 0xffff
jbe 0x437291
and ecx, 0x3ff
or ecx, 0xdc00
mov esi, ecx
jmp 0x437212
mov dword [ebp - 0x5c], 2
mov dword [ebp - 0x58], 0x508c18
jmp 0x436f17
mov eax, dword [ebp - 0xe8]
movq xmm0, qword [ebp - 0xf0]
mov dword [ebp - 0x58], eax
movq qword [ebp - 0x60], xmm0
jmp 0x4378b5
xor ebx, ebx
mov edi, eax
nop word cs:[eax + eax]
nop
cmp edx, ebx
je 0x437390
cmp byte [edi + edx - 1], 0x2e
lea esi, [edi - 1]
mov ecx, ebx
lea ebx, [ebx + 1]
mov edi, esi
jne 0x437300
mov edi, edx
sub edi, ebx
jne 0x437829
xor esi, esi
mov edi, edx
jmp 0x43782d
mov eax, dword [ebp - 0x24]
cmp eax, 7
ja 0x43739b
dec eax
nop word cs:[eax + eax]
nop
sub eax, 1
setb dl
cmp byte [edi], 0x2e
sete dh
je 0x4373b8
inc edi
test dl, dl
je 0x437340
jmp 0x4373b8
mov edx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x2c]
jmp 0x437856
mov dword [ebp - 0x574], edx
mov dword [ebp - 0x56c], ecx
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x574]
mov dword [ebp - 0x570], eax
mov byte [ebp - 0x1d], 1
call fcn.00433450
jmp 0x4378ca
xor edi, edi
jmp 0x436e72
mov esi, eax
mov ecx, edx
xor eax, eax
jmp 0x43782d
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
push eax
push edi
push 0x2e
call fcn.00447950
add esp, 0xc
cmp eax, 1
sete dh
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0x48], dh
mov dword [ebp - 0x10], 9
test eax, eax
je 0x437524
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0xf0], eax
mov byte [ebp - 0x1d], 1
add ecx, eax
lea eax, [ebp - 0xf0]
mov dword [ebp - 0xec], ecx
mov word [ebp - 0xe8], 0
mov byte [ebp - 0xe4], 1
lea ecx, [ebp - 0x574]
push eax
push ecx
call fcn.00434bc0
add esp, 8
jmp 0x437424
lea eax, [ebp - 0xf0]
mov byte [ebp - 0x1d], 1
push eax
lea eax, [ebp - 0x574]
push eax
call fcn.00434bc0
add esp, 8
mov eax, dword [ebp - 0x574]
cmp eax, 0x80000000
je 0x437524
mov edx, dword [ebp - 0x56c]
mov ecx, dword [ebp - 0x570]
test edx, edx
je 0x43750b
mov esi, dword [ebp - 0x568]
mov dword [ebp - 0x574], eax
mov dword [ebp - 0x570], ecx
mov dword [ebp - 0x56c], edx
mov dword [ebp - 0x10], 0x12
mov dword [ebp - 0x568], esi
push dword [ebp - 0x24]
push dword [ebp - 0x30]
lea eax, [ebp - 0x574]
push eax
call fcn.0042d1d0
add esp, 0xc
cmp byte [ebp - 0x48], 0
jne 0x43749f
push 3
push str.exe.NULcmd.exelibrary_std_src_syspalwindows_stdio.rs
lea eax, [ebp - 0x574]
push eax
call fcn.0042de30
add esp, 0xc
mov edx, dword [ebp - 0x570]
lea ecx, [ebp - 0x13c]
mov dword [ebp - 0x28], edx
push dword [ebp - 0x56c]
call fcn.00439830
add esp, 4
mov eax, dword [ebp - 0x574]
test eax, eax
je 0x4374d4
push 1
push eax
push dword [ebp - 0x28]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0x13c]
cmp eax, 0x80000000
jne 0x437818
lea eax, [ebp - 0xf0]
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
push eax
lea eax, [ebp - 0x574]
push eax
call fcn.00434bc0
add esp, 8
jmp 0x437424
test eax, eax
je 0x43740a
push 1
push eax
push ecx
call fcn.0040ad50
add esp, 0xc
jmp 0x43740a
lea ecx, [ebp - 0xf0]
mov byte [ebp - 0x1d], 1
call fcn.00434e70
mov eax, dword [ebp - 0xf0]
cmp eax, 0x80000000
mov dword [ebp - 0x28], eax
jne 0x437557
lea ecx, [ebp - 0xf0]
mov byte [ebp - 0x1d], 1
call fcn.004258d0
jmp 0x43763f
mov edx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xe4]
mov byte [ebp - 0x54], 0
mov dword [ebp - 0x10], 0x10
mov dword [ebp - 0x110], ecx
mov dword [ebp - 0x40], edx
push edx
mov dword [ebp - 0x2c], eax
push eax
call fcn.0042e140
add esp, 8
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x10], 0x11
cmp ecx, edx
cmovb edx, ecx
test eax, eax
mov eax, dword [ebp - 0x28]
cmove edx, ecx
mov dword [ebp - 0x574], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x570], eax
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x56c], edx
mov dword [ebp - 0x568], eax
lea eax, [ebp - 0x574]
push dword [ebp - 0x24]
push dword [ebp - 0x30]
push eax
call fcn.0042d1d0
add esp, 0xc
cmp byte [ebp - 0x48], 0
jne 0x4375f3
push 3
push str.exe.NULcmd.exelibrary_std_src_syspalwindows_stdio.rs
lea eax, [ebp - 0x574]
push eax
call fcn.0042de30
add esp, 0xc
mov edx, dword [ebp - 0x570]
lea ecx, [ebp - 0x13c]
mov dword [ebp - 0x110], edx
push dword [ebp - 0x56c]
call fcn.00439830
add esp, 4
mov eax, dword [ebp - 0x574]
test eax, eax
je 0x43762e
push 1
push eax
push dword [ebp - 0x110]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0x13c]
cmp eax, 0x80000000
jne 0x437818
mov edi, 0x200
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 2
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x110], 2
cmp edi, 0x201
jb 0x43768e
jmp 0x4376a0
jbe 0x43773c
cmp edi, 0x201
jae 0x4376a0
mov dword [ebp - 0x2c], 0x200
lea ebx, [ebp - 0x574]
mov esi, edi
jmp 0x4376e3
mov esi, dword [ebp - 0x28]
sub edi, esi
je 0x4376d1
mov dword [ebp - 0x10], 0xe
lea ecx, [ebp - 0xa8]
mov edx, esi
push edi
call fcn.0044ab20
add esp, 4
mov esi, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x110], eax
mov ebx, dword [ebp - 0x110]
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], esi
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov edi, eax
test eax, eax
jne 0x437707
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x43829e
cmp edi, esi
jne 0x437680
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x438f42
lea edi, [esi + esi]
test esi, esi
mov eax, 0xffffffff
cmovs edi, eax
cmp edi, 0x201
jae 0x4376a0
jmp 0x43768e
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x10], 0xe
cmp edi, eax
ja 0x43901e
push edi
push ebx
lea eax, [ebp - 0xf0]
push eax
call fcn.0042c170
add esp, 0xc
mov dword [ebp - 0x10], 0xf
push dword [ebp - 0x24]
push dword [ebp - 0x30]
lea eax, [ebp - 0xf0]
push eax
call fcn.0042d1d0
add esp, 0xc
cmp byte [ebp - 0x48], 0
jne 0x437797
push 3
push str.exe.NULcmd.exelibrary_std_src_syspalwindows_stdio.rs
lea eax, [ebp - 0xf0]
push eax
call fcn.0042de30
add esp, 0xc
mov edx, dword [ebp - 0xec]
lea ecx, [ebp - 0x13c]
mov dword [ebp - 0x28], edx
push dword [ebp - 0xe8]
call fcn.00439830
add esp, 4
mov eax, dword [ebp - 0xf0]
test eax, eax
je 0x4377cc
push 1
push eax
push dword [ebp - 0x28]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0x134]
movq xmm0, qword [ebp - 0x13c]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0xa8]
movq qword [ebp - 0x84], xmm0
test eax, eax
je 0x437802
add eax, eax
push 2
push eax
push dword [ebp - 0xa4]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0x84]
cmp eax, 0x80000001
jle 0x4382d9
jmp 0x4384c3
mov ecx, dword [ebp - 0x138]
mov edi, dword [ebp - 0x134]
jmp 0x4378de
lea esi, [esi + edx + 1]
mov ebx, dword [ebp - 0x2c]
test eax, eax
cmovne esi, eax
test esi, esi
je 0x437853
mov edx, dword [ebp - 0x24]
test eax, eax
mov dword [ebp - 0x10], 0x15
cmove edi, ecx
add esi, edi
sub esi, edx
cmp ebx, esi
cmovae ebx, esi
jmp 0x437856
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x10], 0x15
lea ecx, [ebp - 0x574]
push ebx
call fcn.0043bd60
add esp, 4
mov edx, dword [ebp - 0x574]
mov eax, dword [ebp - 0x570]
mov ecx, dword [ebp - 0x56c]
cmp edx, 0x80000000
jne 0x437895
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x60], 0x80000000
jmp 0x4378b5
mov dword [ebp - 0x574], edx
mov dword [ebp - 0x56c], ecx
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x574]
mov dword [ebp - 0x570], eax
call fcn.00433450
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4378ca
push 1
push eax
push dword [ebp - 0x24]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0x60]
cmp eax, 0x80000000
je 0x436f17
mov ecx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x58]
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x2c], ecx
cmp edi, 4
jbe 0x43790a
mov eax, dword [ebp - 0x2c]
lea eax, [eax + edi*2]
mov ecx, eax
add ecx, 0xfffffff6
je 0x43790a
cmp word [ecx], 0x2e
jne 0x43790a
cmp word [eax - 2], 0
je 0x4384ce
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 2
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0x10], 0x1a
mov ecx, dword [eax + 0x2c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [eax + 0x30]
movzx eax, byte [eax + 0x65]
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0xf0]
mov byte [ebp - 0x28], al
call fcn.00429100
mov eax, dword [ebp - 0xec]
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
mov word [eax], 0x22
mov dword [ebp - 0x574], edx
mov dword [ebp - 0x570], ecx
lea ecx, [ebp - 0xf0]
lea edx, [ebp - 0x574]
mov dword [ebp - 0xe8], 1
mov word [ebp - 0x56c], 0
call fcn.00429260
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xe8]
cmp ecx, dword [ebp - 0xf0]
jne 0x4379b6
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0xf0]
call fcn.00429100
mov ecx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0xec]
mov word [eax + ecx*2], 0x22
mov eax, dword [ebp - 0x40]
inc ecx
mov dword [ebp - 0xe8], ecx
movzx ecx, byte [ebp - 0x28]
lea eax, [eax + eax*4]
lea eax, [esi + eax*4]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], eax
cmp esi, dword [ebp - 0x30]
je 0x437a58
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ecx, dword [ebp - 0xe8]
mov dword [ebp - 0x24], esi
cmp ecx, dword [ebp - 0xf0]
jne 0x437a15
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0xf0]
call fcn.00429100
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0xec]
lea edx, [ebp - 0xf0]
mov word [eax + ecx*2], 0x20
inc ecx
mov dword [ebp - 0xe8], ecx
lea ecx, [ebp - 0x13c]
push dword [ebp - 0x34]
push esi
call fcn.004324c0
mov esi, dword [ebp - 0x24]
add esp, 8
cmp byte [ebp - 0x13c], 4
jne 0x437f86
add esi, 0x14
cmp esi, dword [ebp - 0x30]
jne 0x4379f0
mov eax, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xec]
mov edi, dword [ebp - 0xe8]
cmp eax, 0x80000000
je 0x437faf
mov ebx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x2c]
mov cl, 1
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x168], ecx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x70], edx
mov ecx, dword [ebp - 0x74]
cmp eax, edi
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0xf4], edi
jne 0x437ad1
lea ecx, [ebp - 0xfc]
mov dword [ebp - 0x24], edi
mov byte [ebp - 0x38], 1
mov dword [ebp - 0x10], 0x1b
call fcn.00429100
mov esi, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x74]
mov edi, dword [ebp - 0x24]
mov word [esi + edi*2], 0
inc edi
mov eax, 0x400
mov edx, 0x608
cmp byte [ecx + 0x64], 0
mov dword [ebp - 0xf4], edi
cmove edx, eax
or edx, dword [ecx + 0x54]
cmp dword [ebp - 0x160], 0
mov dword [ebp - 0x16c], edx
je 0x438047
mov esi, dword [ebp - 0x154]
movq xmm0, qword [ebp - 0x15c]
mov eax, 2
mov ecx, 0
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 2
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x30], 0
test esi, esi
mov dword [ebp - 0x7c], esi
movq qword [ebp - 0x84], xmm0
jne 0x437b87
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x24], esi
mov byte [ebp - 0x35], 1
mov dword [ebp - 0x10], 0x1c
call fcn.00429100
mov eax, dword [ebp - 0xa4]
mov esi, dword [ebp - 0x24]
mov ecx, 1
mov word [eax], 0
mov dword [ebp - 0xa0], 1
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xac], ecx
mov ecx, dword [ebp - 0x80]
xor edx, edx
mov dword [ebp - 0x10], 0x1d
test eax, eax
setne dl
cmove esi, eax
mov dword [ebp - 0x574], edx
mov dword [ebp - 0x570], 0
mov dword [ebp - 0x56c], eax
mov dword [ebp - 0x568], ecx
mov dword [ebp - 0x564], edx
mov dword [ebp - 0x560], 0
mov dword [ebp - 0x55c], eax
mov dword [ebp - 0x558], ecx
lea ecx, [ebp - 0xf0]
lea edx, [ebp - 0x574]
mov dword [ebp - 0x554], esi
call fcn.00427150
mov ecx, dword [ebp - 0xf0]
test ecx, ecx
je 0x4388f6
mov eax, dword [ebp - 0xe8]
lea edx, [eax + eax*8]
lea edx, [edx + edx*2]
add edx, eax
mov esi, dword [ecx + edx + 0xb4]
cmp esi, 0x80000000
je 0x4388f6
shl eax, 4
mov dword [ebp - 0x68], esi
mov edi, dword [ecx + edx + 0xcc]
xor ebx, ebx
mov esi, dword [ecx + eax]
mov dword [ebp - 0x164], edi
mov dword [ebp - 0x44], esi
mov esi, dword [ecx + eax + 4]
mov eax, dword [ecx + eax + 8]
mov dword [ebp - 0x64], esi
mov esi, dword [ecx + edx + 0xc4]
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + edx + 0xb8]
mov dword [ebp - 0x50], esi
mov esi, dword [ecx + edx + 0xc8]
mov ecx, dword [ecx + edx + 0xbc]
mov edx, eax
mov dword [ebp - 0x100], eax
add ecx, eax
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x24], ecx
jmp 0x437c9b
xor ebx, ebx
test di, di
je 0x437fe7
mov di, 1
test bx, bx
jne 0x437c90
cmp edx, ecx
je 0x437d2c
movzx eax, byte [edx]
movzx esi, al
test al, al
js 0x437cb9
inc edx
jmp 0x437d23
movzx ecx, byte [edx + 1]
and esi, 0x1f
and ecx, 0x3f
cmp al, 0xdf
jbe 0x437cf0
movzx ebx, byte [edx + 2]
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
cmp al, 0xf0
jb 0x437cfd
movzx eax, byte [edx + 3]
and esi, 7
shl ebx, 6
add edx, 4
shl esi, 0x12
and eax, 0x3f
or eax, ebx
or esi, eax
jmp 0x437d05
shl esi, 6
add edx, 2
or esi, ecx
mov ecx, dword [ebp - 0x24]
jmp 0x437d23
shl esi, 0xc
add edx, 3
or esi, ebx
mov ecx, dword [ebp - 0x24]
cmp esi, 0xffff
jbe 0x437d23
and esi, 0x3ff
or esi, 0xdc00
mov ebx, esi
jmp 0x437c92
xor ebx, ebx
mov edi, esi
jmp 0x437c92
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x437d44
push 1
push eax
push dword [ebp - 0x100]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0xa8]
mov edi, dword [ebp - 0xac]
mov esi, dword [ebp - 0x164]
mov ecx, dword [ebp - 0x48]
sub eax, edi
cmp eax, esi
jae 0x437d89
mov dword [ebp - 0x10], 0x20
lea ecx, [ebp - 0xa8]
mov edx, edi
push esi
call fcn.0044ab20
add esp, 4
mov ecx, dword [ebp - 0xa4]
mov edi, dword [ebp - 0xa0]
mov esi, dword [ebp - 0x164]
lea eax, [esi + esi]
mov dword [ebp - 0x48], ecx
lea ecx, [ecx + edi*2]
push eax
mov ebx, dword [ebp - 0x6c]
push ebx
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x50]
add edi, esi
mov dword [ebp - 0xa0], edi
test eax, eax
je 0x437dbd
add eax, eax
push 2
push eax
push ebx
call fcn.0040ad50
add esp, 0xc
cmp edi, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x48]
jne 0x437df0
lea ecx, [ebp - 0xa8]
mov byte [ebp - 0x39], 1
mov dword [ebp - 0x10], 0x1e
mov dword [ebp - 0xac], edi
call fcn.00429100
mov edi, dword [ebp - 0xac]
mov eax, dword [ebp - 0xa4]
mov word [eax + edi*2], 0x3d
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x28]
and dword [ebp - 0x100], 0xffffff00
inc edi
mov dword [ebp - 0xa0], edi
xor edi, edi
add eax, ecx
mov dword [ebp - 0x24], eax
jmp 0x437e21
xor edi, edi
test si, si
je 0x438786
mov si, 1
test di, di
jne 0x437e16
cmp ecx, eax
je 0x437eb4
movzx ebx, byte [ecx]
movzx edx, bl
test bl, bl
js 0x437e3f
inc ecx
jmp 0x437eab
movzx eax, byte [ecx + 1]
and edx, 0x1f
and eax, 0x3f
cmp bl, 0xdf
jbe 0x437e78
movzx edi, byte [ecx + 2]
shl eax, 6
and edi, 0x3f
or edi, eax
cmp bl, 0xf0
jb 0x437e85
movzx eax, byte [ecx + 3]
and edx, 7
shl edi, 6
add ecx, 4
shl edx, 0x12
and eax, 0x3f
or eax, edi
or edx, eax
jmp 0x437e8d
shl edx, 6
add ecx, 2
or edx, eax
mov eax, dword [ebp - 0x24]
jmp 0x437eab
shl edx, 0xc
add ecx, 3
or edx, edi
mov eax, dword [ebp - 0x24]
cmp edx, 0xffff
jbe 0x437eab
and edx, 0x3ff
or edx, 0xdc00
mov edi, edx
jmp 0x437e18
xor edi, edi
mov esi, edx
jmp 0x437e18
mov ecx, dword [ebp - 0x64]
mov eax, ecx
shr eax, 8
cmp dword [ebp - 0x44], 0x80000000
mov dword [ebp - 0x148], eax
je 0x438e23
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x13c], ecx
lea ecx, [ebp - 0xa8]
lea edx, [ebp - 0x13c]
mov dword [ebp - 0x10], 0x1f
mov dword [ebp - 0x138], eax
mov word [ebp - 0x134], 0
call fcn.00429260
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x437f14
push 1
push eax
push dword [ebp - 0x64]
call fcn.0040ad50
add esp, 0xc
mov edx, dword [ebp - 0xa0]
cmp edx, dword [ebp - 0xa8]
jne 0x437f44
lea ecx, [ebp - 0xa8]
mov byte [ebp - 0x39], 0
mov dword [ebp - 0x10], 0x1e
mov dword [ebp - 0xac], edx
call fcn.00429100
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x100]
mov word [eax + edx*2], 0
inc edx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x10], 0x1d
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xa0], edx
lea edx, [ebp - 0x574]
call fcn.00427150
jmp 0x437bf9
mov eax, dword [ebp - 0xf0]
mov esi, dword [ebp - 0x13c]
mov edi, dword [ebp - 0x138]
test eax, eax
je 0x437faf
add eax, eax
push 2
push eax
push dword [ebp - 0xec]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov dword [eax], esi
mov dword [eax + 4], edi
mov dword [eax + 8], 2
xor ebx, ebx
mov eax, dword [ebp - 0x110]
test eax, eax
je 0x437fda
add eax, eax
push 2
push eax
push dword [ebp - 0x2c]
call fcn.0040ad50
add esp, 0xc
test bl, bl
je 0x436f2c
jmp 0x437049
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x437fff
push 1
push eax
push dword [ebp - 0x100]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x438014
push 1
push eax
push dword [ebp - 0x64]
call fcn.0040ad50
add esp, 0xc
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x6c]
or dword [ebp - 0x30], 2
mov dword [ebp - 0x28], 0x508c18
test ecx, ecx
je 0x4387bc
add ecx, ecx
push 2
push ecx
push eax
call fcn.0040ad50
add esp, 0xc
mov dword [ebp - 0x10], 0x1c
jmp 0x4387bc
xor edx, edx
xor edi, edi
mov dword [ebp - 0x30], 2
cmp dword [ecx + 0x34], 0x80000000
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x48], edi
jne 0x4389bf
xor esi, esi
mov ebx, 2
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x64], 0
pxor xmm0, xmm0
mov cl, 1
xor eax, eax
movdqu xmmword [ebp - 0xa8], xmm0
lock cmpxchg byte [0x5101a0], cl
jne 0x438b1f
mov eax, dword [0x51017c]
movzx ecx, bl
movzx ebx, byte [ebp + 0xc]
shl esi, 8
test eax, 0x7fffffff
jne 0x438b31
xor eax, eax
or ecx, esi
xor edx, edx
mov dword [ebp - 0x24], ecx
movzx ecx, byte [0x5101a1]
mov dword [ebp - 0x5c], 0x5101a0
mov byte [ebp - 0x58], al
lea eax, [ebp - 0x150]
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x144], 2
mov dword [ebp - 0x10], 0x23
test cl, cl
mov ecx, dword [ebp - 0x74]
setne dl
test bl, bl
mov dword [ebp - 0x60], edx
lea edx, [ebp - 0x144]
cmovne edx, eax
cmp dword [ecx], 6
lea esi, [ecx + 8]
cmovne edx, ecx
cmp dword [ecx + 8], 6
cmove esi, eax
cmp dword [ecx + 0x10], 6
mov dword [ebp - 0x68], esi
lea esi, [ecx + 0x10]
lea ecx, [ebp - 0x574]
cmove esi, eax
lea eax, [ebp - 0x13c]
mov dword [ebp - 0x6c], esi
push eax
push 0xfffffffffffffff6
call fcn.004398e0
add esp, 8
movzx eax, byte [ebp - 0x574]
cmp al, 4
jne 0x438809
mov ecx, dword [ebp - 0x570]
mov edx, dword [ebp - 0x68]
lea eax, [ebp - 0x134]
mov dword [ebp - 0x10], 0x24
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0x574]
push eax
push 0xfffffffffffffff5
call fcn.004398e0
add esp, 8
movzx eax, byte [ebp - 0x574]
cmp al, 4
jne 0x43883b
mov ecx, dword [ebp - 0x570]
mov edx, dword [ebp - 0x6c]
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x10], 0x25
mov dword [ebp - 0x68], ecx
lea ecx, [ebp - 0x574]
push eax
push 0xfffffffffffffff4
call fcn.004398e0
add esp, 8
movzx eax, byte [ebp - 0x574]
mov edx, dword [ebp - 0x74]
cmp al, 4
jne 0x43895e
mov ecx, dword [ebp - 0x570]
cmp dword [ebp - 0x50], 0
mov ebx, dword [ebp - 0x28]
pxor xmm0, xmm0
mov dword [ebp - 0xb0], 0
movdqu xmmword [ebp - 0xc0], xmm0
movdqu xmmword [ebp - 0xd0], xmm0
movdqu xmmword [ebp - 0xe0], xmm0
movdqu xmmword [ebp - 0xf0], xmm0
jne 0x438219
cmp dword [ebp - 0x68], 0
jne 0x438219
test ecx, ecx
je 0x43823b
mov eax, dword [ebp - 0x50]
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0xc4], 0x100
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xb0], ecx
mov eax, dword [edx + 0x60]
mov dword [ebp - 0x6c], ecx
test eax, eax
mov dword [ebp - 0x100], eax
je 0x438b48
add edx, 0x58
lea ecx, [ebp - 0x84]
mov dword [ebp - 0xf0], 0x48
mov dword [ebp - 0x10], 0x26
call fcn.0043a6a0
cmp dword [ebp - 0x84], 0
mov edi, dword [ebp - 0x80]
mov esi, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x28]
lea ecx, [ebp - 0x574]
je 0x438b5a
mov eax, dword [ebp - 0x4c]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], 2
jmp 0x438cf9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [ebp - 0x80], 0
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x84], 0x80000001
test eax, eax
je 0x4382d2
add eax, eax
push 2
push eax
push dword [ebp - 0xa4]
call fcn.0040ad50
add esp, 0xc
mov dword [ebp - 0x10], 9
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
call fcn.00424be0
mov edi, 0x200
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 2
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x110], 2
cmp edi, 0x201
jb 0x43833e
jmp 0x438350
jbe 0x4383ec
cmp edi, 0x201
jae 0x438350
mov dword [ebp - 0x2c], 0x200
lea ebx, [ebp - 0x574]
mov esi, edi
jmp 0x438393
mov esi, dword [ebp - 0x28]
sub edi, esi
je 0x438381
mov dword [ebp - 0x10], 0xc
lea ecx, [ebp - 0xa8]
mov edx, esi
push edi
call fcn.0044ab20
add esp, 4
mov esi, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x110], eax
mov ebx, dword [ebp - 0x110]
mov dword [ebp - 0xa0], esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], esi
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov edi, eax
test eax, eax
jne 0x4383b7
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x43857d
cmp edi, esi
jne 0x438330
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x438f62
lea edi, [esi + esi]
test esi, esi
mov eax, 0xffffffff
cmovs edi, eax
cmp edi, 0x201
jae 0x438350
jmp 0x43833e
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x10], 0xc
cmp edi, eax
ja 0x43902f
push edi
push ebx
lea eax, [ebp - 0xf0]
push eax
call fcn.0042c170
add esp, 0xc
mov dword [ebp - 0x10], 0xd
push dword [ebp - 0x24]
push dword [ebp - 0x30]
lea eax, [ebp - 0xf0]
push eax
call fcn.0042d1d0
add esp, 0xc
cmp byte [ebp - 0x48], 0
jne 0x438447
push 3
push str.exe.NULcmd.exelibrary_std_src_syspalwindows_stdio.rs
lea eax, [ebp - 0xf0]
push eax
call fcn.0042de30
add esp, 0xc
mov edx, dword [ebp - 0xec]
lea ecx, [ebp - 0x13c]
mov dword [ebp - 0x28], edx
push dword [ebp - 0xe8]
call fcn.00439830
add esp, 4
mov eax, dword [ebp - 0xf0]
test eax, eax
je 0x43847c
push 1
push eax
push dword [ebp - 0x28]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0x134]
movq xmm0, qword [ebp - 0x13c]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0xa8]
movq qword [ebp - 0x84], xmm0
test eax, eax
je 0x4384b2
add eax, eax
push 2
push eax
push dword [ebp - 0xa4]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0x84]
cmp eax, 0x80000002
jl 0x4385b8
mov ecx, dword [ebp - 0x80]
mov edi, dword [ebp - 0x7c]
jmp 0x4378de
movzx ecx, word [eax - 8]
lea edx, [ecx - 0x42]
cmp edx, 0x21
ja 0x43790a
mov esi, dword [ebp - 0x70]
add esi, dword [edx*4 + 0x4397a4]
jmp esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [ebp - 0x80], 0
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x84], 0x80000001
test eax, eax
je 0x4385b1
add eax, eax
push 2
push eax
push dword [ebp - 0xa4]
call fcn.0040ad50
add esp, 0xc
mov dword [ebp - 0x10], 9
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
call fcn.00424be0
mov byte [ebp - 0x1d], 1
lea eax, [ebp - 0x13c]
push 4
push str.PATHlibrary_std_src_sys_commonprocess.rs
push eax
call fcn.0042a0c0
add esp, 0xc
mov eax, dword [ebp - 0x13c]
cmp eax, 0x80000000
je 0x438776
mov ecx, dword [ebp - 0x138]
mov edx, dword [ebp - 0x134]
mov dword [ebp - 0x28], eax
add edx, ecx
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0xec], edx
mov word [ebp - 0xe8], 0
mov byte [ebp - 0xe4], 1
lea eax, [ebp - 0xf0]
lea ecx, [ebp - 0x574]
mov dword [ebp - 0x10], 0xa
push eax
push ecx
call fcn.00434bc0
add esp, 8
jmp 0x43865e
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0x574]
push eax
call fcn.00434bc0
add esp, 8
mov eax, dword [ebp - 0x574]
mov edi, dword [ebp - 0x30]
cmp eax, 0x80000000
je 0x438761
mov edx, dword [ebp - 0x56c]
mov ecx, dword [ebp - 0x570]
test edx, edx
jne 0x438694
test eax, eax
je 0x438648
push 1
push eax
push ecx
call fcn.0040ad50
add esp, 0xc
jmp 0x438648
mov esi, dword [ebp - 0x568]
mov dword [ebp - 0x574], eax
mov dword [ebp - 0x570], ecx
mov dword [ebp - 0x56c], edx
mov dword [ebp - 0x10], 0xb
mov dword [ebp - 0x568], esi
push dword [ebp - 0x24]
push edi
lea eax, [ebp - 0x574]
push eax
call fcn.0042d1d0
add esp, 0xc
cmp byte [ebp - 0x48], 0
jne 0x4386e8
push 3
push str.exe.NULcmd.exelibrary_std_src_syspalwindows_stdio.rs
lea eax, [ebp - 0x574]
push eax
call fcn.0042de30
add esp, 0xc
mov edx, dword [ebp - 0x570]
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x2c], edx
push dword [ebp - 0x56c]
call fcn.00439830
add esp, 4
mov eax, dword [ebp - 0x574]
test eax, eax
je 0x43871d
push 1
push eax
push dword [ebp - 0x2c]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0xa8]
cmp eax, 0x80000000
je 0x438629
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0xa4]
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4378e7
push 1
push eax
push dword [ebp - 0x40]
call fcn.0040ad50
add esp, 0xc
jmp 0x4378e7
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x438776
push 1
push eax
push dword [ebp - 0x40]
call fcn.0040ad50
add esp, 0xc
mov byte [ebp - 0x5c], 2
mov dword [ebp - 0x58], 0x508c68
jmp 0x436f17
mov eax, dword [ebp - 0x44]
mov esi, 2
mov dword [ebp - 0x28], 0x508c18
test eax, eax
je 0x4387a7
push 1
push eax
push dword [ebp - 0x64]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x10], 0x1c
shl eax, 8
or eax, esi
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x574]
mov byte [ebp - 0x35], 0
mov dword [ebp - 0x10], 0x1c
call fcn.00424e60
mov eax, dword [ebp - 0xa8]
test eax, eax
je 0x4387ef
add eax, eax
push 2
push eax
push dword [ebp - 0xa4]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x28]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], 2
jmp 0x438dc5
movzx ecx, byte [ebp - 0x571]
mov edx, dword [ebp - 0x4c]
movzx edi, word [ebp - 0x573]
mov esi, dword [ebp - 0x570]
mov ebx, dword [ebp - 0x28]
mov byte [edx + 3], cl
mov word [edx + 1], di
mov byte [edx], al
mov dword [edx + 4], esi
mov dword [edx + 8], 2
jmp 0x438d29
movzx ecx, byte [ebp - 0x571]
mov edx, dword [ebp - 0x4c]
movzx edi, word [ebp - 0x573]
mov esi, dword [ebp - 0x570]
mov byte [edx + 3], cl
mov word [edx + 1], di
mov byte [edx], al
mov dword [edx + 4], esi
mov dword [edx + 8], 2
push dword [ebp - 0x50]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [ebp - 0x28]
jmp 0x438d29
lea ecx, [ebp - 0x574]
mov byte [ebp - 0x35], 0
mov dword [ebp - 0x10], 0x1c
call fcn.00424e60
mov eax, dword [ebp - 0xac]
mov edi, dword [ebp - 0x48]
cmp eax, dword [ebp - 0xa8]
jne 0x438932
lea ecx, [ebp - 0xa8]
mov byte [ebp - 0x35], 0
call fcn.00429100
mov edi, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xac]
mov word [edi + ecx*2], 0
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xa4]
cmp edx, 0x80000000
mov dword [ebp - 0x30], eax
jne 0x4389a9
inc ecx
mov dword [ebp - 0x28], ecx
jmp 0x4387ef
movzx ecx, byte [ebp - 0x571]
mov edx, dword [ebp - 0x4c]
movzx edi, word [ebp - 0x573]
mov esi, dword [ebp - 0x570]
mov ebx, dword [ebp - 0x28]
mov byte [edx + 3], cl
mov word [edx + 1], di
mov byte [edx], al
mov dword [edx + 4], esi
mov esi, 2
mov dword [edx + 8], 2
jmp 0x438d08
mov ecx, dword [ebp - 0x74]
cmp dword [ecx + 0x34], 0x80000000
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x48], edi
je 0x438065
mov edx, dword [ecx + 0x38]
mov ecx, dword [ecx + 0x3c]
xor ebx, ebx
add ecx, edx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x24], ecx
jmp 0x4389dc
xor ebx, ebx
test di, di
je 0x438a6d
mov di, 1
test bx, bx
jne 0x4389d1
cmp edx, ecx
je 0x438a98
movzx eax, byte [edx]
movzx esi, al
test al, al
js 0x4389fa
inc edx
jmp 0x438a64
movzx ecx, byte [edx + 1]
and esi, 0x1f
and ecx, 0x3f
cmp al, 0xdf
jbe 0x438a31
movzx ebx, byte [edx + 2]
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
cmp al, 0xf0
jb 0x438a3e
movzx eax, byte [edx + 3]
and esi, 7
shl ebx, 6
add edx, 4
shl esi, 0x12
and eax, 0x3f
or eax, ebx
or esi, eax
jmp 0x438a46
shl esi, 6
add edx, 2
or esi, ecx
mov ecx, dword [ebp - 0x24]
jmp 0x438a64
shl esi, 0xc
add edx, 3
or esi, ebx
mov ecx, dword [ebp - 0x24]
cmp esi, 0xffff
jbe 0x438a64
and esi, 0x3ff
or esi, 0xdc00
mov ebx, esi
jmp 0x4389d3
xor ebx, ebx
mov edi, esi
jmp 0x4389d3
mov edx, 0x508c18
mov ebx, 2
xor esi, esi
mov ecx, dword [ebp - 0x4c]
movzx eax, bl
mov ebx, dword [ebp - 0x28]
shl esi, 8
or eax, esi
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ecx + 8], 2
jmp 0x438db1
mov eax, dword [ebp - 0x44]
lea edx, [ebp - 0x574]
mov dword [ebp - 0x10], 0x21
mov dword [ebp - 0x574], eax
mov dword [ebp - 0x570], ecx
lea ecx, [ebp - 0xf0]
mov word [ebp - 0x56c], 0
call fcn.004293d0
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xe8]
cmp edx, eax
jne 0x438af6
lea ecx, [ebp - 0xf0]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x10], 0x22
call fcn.00429100
mov eax, dword [ebp - 0xf0]
mov edx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0xec]
mov esi, ebx
mov word [ebx + edx*2], 0
shr esi, 8
cmp eax, 0x80000000
jne 0x438b14
inc edx
jmp 0x438a79
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x64], ebx
jmp 0x43807a
push 0x5101a0
call fcn.0044ad80
add esp, 4
jmp 0x438098
mov edi, ecx
call fcn.0044ad30
mov ecx, edi
xor al, 1
mov dword [ebp - 0x10], 0x23
jmp 0x4380b4
mov dword [ebp - 0xf0], 0x44
lea ecx, [ebp - 0xf0]
jmp 0x438b82
or dword [ebp - 0x16c], 0x80000
lea eax, [ebp - 0xf0]
push 0x44
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
lea ecx, [ebp - 0x574]
add esp, 0xc
mov dword [ebp - 0x530], edi
lea eax, [ebp - 0xa8]
push eax
push ecx
push dword [ebp - 0x64]
push dword [ebp - 0x48]
push dword [ebp - 0x16c]
push 1
push 0
push 0
push dword [ebp - 0xf8]
push dword [ebp - 0x70]
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x438cbd
mov eax, dword [ebp - 0x4c]
movsd xmm1, qword [ebp - 0x134]
cmp dword [ebp - 0x100], 0
movsd xmm0, qword [ebp - 0x12c]
movsd xmm2, qword [ebp - 0x13c]
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [ebp - 0xa8]
movsd qword [eax + 0x18], xmm0
movsd qword [eax + 8], xmm2
movsd qword [eax], xmm1
je 0x438bfb
mov ecx, edi
mov edx, esi
call fcn.00425830
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x6c]
call esi
push dword [ebp - 0x68]
call esi
push dword [ebp - 0x50]
call esi
cmp dword [ebp - 0x144], 4
jb 0x438c25
push dword [ebp - 0x140]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x60]
call fcn.00424f90
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x438c44
add eax, eax
push 2
push eax
push dword [ebp - 0x24]
call fcn.0040ad50
add esp, 0xc
test ebx, ebx
je 0x438c58
add ebx, ebx
push 2
push ebx
push dword [ebp - 0x30]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x438c75
add eax, eax
push 2
push eax
push dword [ebp - 0xf8]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x438c8c
add eax, eax
push 2
push eax
push dword [ebp - 0x70]
call fcn.0040ad50
add esp, 0xc
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x168]
test ecx, ecx
setne al
xor dl, 1
test al, dl
je 0x437049
add ecx, ecx
push 2
push ecx
push dword [ebp - 0x2c]
call fcn.0040ad50
add esp, 0xc
jmp 0x437049
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, word [ebp - 0x84]
mov edx, dword [ebp - 0x4c]
cmp dword [ebp - 0x100], 0
mov word [edx + 1], cx
mov ch, byte [ebp - 0x82]
mov byte [edx + 3], ch
mov byte [edx], 0
mov dword [edx + 4], eax
mov dword [edx + 8], 2
je 0x438cf9
mov ecx, edi
mov edx, esi
call fcn.00425830
push dword [ebp - 0x6c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0x144]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x68]
call edi
push dword [ebp - 0x50]
call edi
cmp esi, 4
jb 0x438d29
push dword [ebp - 0x140]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x13c], 0
je 0x438d3e
push dword [ebp - 0x138]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x134], 0
je 0x438d53
push dword [ebp - 0x130]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x12c], 0
je 0x438d68
push dword [ebp - 0x128]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
movzx eax, byte [ebp - 0x58]
mov esi, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x24]
cmp dword [ebp - 0x60], 0
test al, al
jne 0x438d8a
mov eax, dword [0x51017c]
test eax, 0x7fffffff
jne 0x438e0a
xor eax, eax
xchg byte [esi], al
cmp al, 2
jne 0x438d9c
push esi
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x438db1
add eax, eax
push 2
push eax
push ecx
call fcn.0040ad50
add esp, 0xc
test ebx, ebx
je 0x438dc5
add ebx, ebx
push 2
push ebx
push dword [ebp - 0x30]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x438de2
add eax, eax
push 2
push eax
push dword [ebp - 0xf8]
call fcn.0040ad50
add esp, 0xc
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x438df9
add eax, eax
push 2
push eax
push dword [ebp - 0x70]
call fcn.0040ad50
add esp, 0xc
cmp byte [ebp - 0x40], 0
mov bl, 1
je 0x437049
jmp 0x437fc0
call fcn.0044ad30
mov ecx, dword [ebp - 0x24]
test al, al
jne 0x438d8a
mov byte [esi + 1], 1
jmp 0x438d8a
movzx esi, cl
jmp 0x4387a7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [ebp - 0x13c], 0
mov dword [ebp - 0x138], eax
lea eax, [ebp - 0x13c]
mov dword [ebp - 0xf0], 0x508bb4
mov dword [ebp - 0xec], 1
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0x10], 0x18
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0xa8]
mov dword [ebp - 0xa4], 0x42ae30
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], 1
push 0x508be8
lea eax, [ebp - 0xf0]
push eax
call fcn.0044b520
add esp, 8
jmp 0x43903e
xor eax, eax
jmp 0x438eec
mov eax, 1
jmp 0x438eb5
xor eax, eax
push dword [ebp - 0x24]
push eax
call fcn.0044b440
add esp, 8
jmp 0x43903e
mov eax, 2
jmp 0x438ecf
xor eax, eax
mov dword [ebp - 0x10], 4
push dword [ebp - 0x28]
push eax
call fcn.0044b440
add esp, 8
jmp 0x43903e
mov eax, 1
mov byte [ebp - 0x52], 1
mov dword [ebp - 0x10], 2
push ebx
push eax
call fcn.0044b440
add esp, 8
jmp 0x43903e
mov dword [ebp - 0x10], 3
push 0x50701c
push 0x21
push str.assertion_failed:_self.height___0
call fcn.0044b5f0
add esp, 0xc
jmp 0x43903e
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
push 4
push 1
call fcn.0044b440
add esp, 8
jmp 0x43903e
mov dword [ebp - 0x10], 0xe
push 0x509030
push 0x28
push 0x507148
call fcn.0044b5f0
add esp, 0xc
jmp 0x43903e
mov dword [ebp - 0x10], 0xc
push 0x509030
push 0x28
push 0x507148
call fcn.0044b5f0
add esp, 0xc
jmp 0x43903e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [ebp - 0xf0], 0
mov dword [ebp - 0xec], eax
lea eax, [ebp - 0xf0]
mov dword [ebp - str.failure_getting_env_string_from_OS:_P], 0x508afc
mov dword [ebp - 0x570], 1
mov dword [ebp - 0x564], 0
mov dword [ebp - 0x10], 8
mov dword [ebp - 0x13c], eax
lea eax, [ebp - 0x13c]
mov dword [ebp - 0x138], 0x42ae30
mov dword [ebp - 0x56c], eax
mov dword [ebp - 0x568], 1
lea eax, [ebp - 0x574]
push 0x508b04
push eax
call fcn.0044b520
add esp, 8
jmp 0x43903e
xor eax, eax
jmp 0x439005
mov eax, 1
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 9
push dword [ebp - 0x24]
push eax
call fcn.0044b440
add esp, 8
jmp 0x43903e
push 0x509020
push eax
push edi
call fcn.0044b8c0
add esp, 0xc
jmp 0x43903e
push 0x509020
push eax
push edi
call fcn.0044b8c0
add esp, 0xc
ud2