Function at 0x41ec30
Capabilities:
Get file version info
Query environment variable

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push str.bash
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41edc4
push 0x4ac0ff
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41edc4
push 0x4ac102
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41ee9a
push str.fish
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41eeaa
push 0x4ac10b
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41ef69
push 0x4ac110
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41ee9a
push str.tcsh
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41ee9a
push 0x4ac119
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41f1bb
push 0x4ac11c
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41f32d
push str.oksh
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41f351
push str.oil.ovm
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41f488
push str.elvish
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41f498
push 0x4ac134
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41f4ef
push str.xonsh
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41f513
push 0x4ac13e
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41f523
push 0x4ac149
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
je 0x41f523
mov ecx, dword [edi + 8]
mov edx, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.00420ac0
mov eax, dword [edi + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], str.__version
mov dword [esp + 0x10], 0
lea eax, [esp + 8]
push 0
push eax
push esi
call fcn.00474b20
add esp, 0xc
test eax, eax
je 0x41edf6
xor ebx, ebx
jmp 0x41f47e
mov eax, dword [esi + 4]
xor ebp, ebp
test eax, eax
je 0x41f0e6
mov ebx, dword [esi + 8]
cmp byte [eax + ebx - 1], 0xa
jne 0x41efd9
inc eax
nop word cs:[eax + eax]
mov edi, eax
add eax, 0xfffffffe
mov dword [esi + 4], eax
cmp edi, 2
je 0x41efc0
lea eax, [edi - 1]
cmp byte [ebx + edi - 3], 0xa
je 0x41ee20
cmp dword [esi], 0
jne 0x41efc9
lea ecx, [eax - 1]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esi + 4], 0
mov ecx, 0x20
nop word [eax + eax]
mov esi, ecx
add ecx, ecx
cmp eax, esi
ja 0x41ee60
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov ecx, dword [esp]
mov dword [ecx + 8], eax
mov dword [ecx], esi
mov esi, ecx
push dword [esp + 4]
push ebx
push eax
mov ebx, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 4]
mov dword [esi + 4], eax
jmp 0x41efc9
mov ecx, edi
mov edx, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
jmp 0x41f540
mov eax, dword [edi + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], str.__version
mov dword [esp + 0x10], 0
lea eax, [esp + 8]
push 0
push eax
push esi
call fcn.00474b20
add esp, 0xc
test eax, eax
jne 0x41edef
mov edi, dword [esi + 4]
test edi, edi
je 0x41f47c
mov ebx, dword [esi + 8]
cmp byte [edi + ebx - 1], 0xa
jne 0x41f37a
inc edi
mov ebp, edi
lea eax, [edi - 2]
mov dword [esi + 4], eax
cmp edi, 2
je 0x41f361
lea edi, [ebp - 1]
cmp byte [ebx + ebp - 3], 0xa
je 0x41eef3
cmp dword [esi], 0
jne 0x41f36a
lea eax, [edi - 1]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esi + 4], 0
mov eax, 0x20
mov esi, eax
add eax, eax
cmp edi, esi
ja 0x41ef2d
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov edi, eax
mov byte [eax], 0
mov eax, dword [esp]
mov dword [eax + 8], edi
mov dword [eax], esi
mov esi, eax
push dword [esp + 4]
push ebx
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 4]
mov dword [esi + 4], eax
mov ebx, edi
jmp 0x41f36a
mov ecx, dword [edi + 8]
mov edx, esi
call fcn.00420ac0
test al, al
je 0x41f06d
mov ebp, dword [esi + 4]
mov bl, 1
test ebp, ebp
je 0x41f47e
mov edi, dword [esi + 8]
mov ecx, ebp
mov eax, ebp
nop
sub eax, 1
jb 0x41f47e
cmp byte [edi + ecx - 1], 0x2e
mov ecx, eax
jne 0x41ef90
cmp ebp, eax
jbe 0x41f47e
cmp dword [esi], 0
je 0x41f4a8
add edi, eax
mov dword [esi + 4], eax
mov byte [edi], 0
jmp 0x41f47e
cmp dword [esi], 0
je 0x41f0d1
mov byte [ebx + edi - 2], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x41f0e6
mov ebx, dword [esi + 8]
cmp byte [eax + ebx - 1], 0x20
jne 0x41f069
inc eax
nop dword [eax + eax]
mov edi, eax
add eax, 0xfffffffe
mov dword [esi + 4], eax
cmp edi, 2
je 0x41f0c2
lea eax, [edi - 1]
cmp byte [ebx + edi - 3], 0x20
je 0x41eff0
cmp dword [esi], 0
jne 0x41f0c7
lea ecx, [eax - 1]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esi + 4], 0
mov ecx, 0x20
nop word [eax + eax]
mov esi, ecx
add ecx, ecx
cmp eax, esi
ja 0x41f030
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov ebp, eax
mov byte [eax], 0
mov eax, dword [esp]
mov dword [eax + 8], ebp
mov dword [eax], esi
mov esi, eax
push dword [esp + 4]
push ebx
push ebp
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 4]
mov dword [esi + 4], eax
mov ebx, ebp
jmp 0x41f0c7
mov ebp, eax
jmp 0x41f0e6
mov eax, dword [edi + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], str.__version
mov dword [esp + 0x10], 0
lea eax, [esp + 8]
push 0
push eax
push esi
call fcn.00474b20
add esp, 0xc
test eax, eax
jne 0x41edef
push 0xa
push esi
call fcn.00472a70
add esp, 8
push 0x20
push esi
call fcn.00472a70
add esp, 8
push 0x20
push esi
call fcn.00473100
add esp, 8
jmp 0x41f47c
cmp dword [esi], 0
je 0x41f0d1
mov byte [ebx + edi - 2], 0
mov ebp, dword [esi + 4]
jmp 0x41f0e6
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
mov ebx, dword [esi + 8]
push ebp
push 0xa
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memchr
add esp, 0xc
mov ecx, eax
sub ecx, ebx
test eax, eax
cmove ecx, ebp
cmp ebp, ecx
jbe 0x41f176
cmp dword [esi], 0
je 0x41f110
mov dword [esi + 4], ecx
add ebx, ecx
mov edi, ebx
jmp 0x41f170
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
test ebx, ebx
je 0x41f1b4
mov dword [esp], esi
lea eax, [ebp + 1]
mov ecx, 0x20
nop dword [eax + eax]
mov esi, ecx
add ecx, ecx
cmp eax, esi
ja 0x41f140
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov edi, eax
mov byte [eax], 0
mov eax, dword [esp]
mov dword [eax + 8], edi
mov dword [eax], esi
mov esi, eax
push ebp
push ebx
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], ebp
add edi, ebp
mov byte [edi], 0
mov ebp, dword [esi + 4]
xor edi, edi
test ebp, ebp
je 0x41f284
mov ebx, dword [esi + 8]
mov ecx, ebp
mov eax, ebp
nop word [eax + eax]
sub eax, 1
jb 0x41f218
cmp byte [ebx + ecx - 1], 0x20
mov ecx, eax
jne 0x41f190
cmp ebp, eax
jbe 0x41f218
cmp dword [esi], 0
je 0x41f1cb
add ebx, eax
mov dword [esi + 4], eax
mov edi, ebx
jmp 0x41f210
xor edi, edi
jmp 0x41f284
mov ecx, edi
mov edx, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
jmp 0x41f7a0
mov dword [esp], esi
mov dword [esi + 4], 0
lea eax, [ebp + 1]
mov ecx, 0x20
nop dword [eax]
mov esi, ecx
add ecx, ecx
cmp eax, esi
ja 0x41f1e0
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov edi, eax
mov byte [eax], 0
mov eax, dword [esp]
mov dword [eax + 8], edi
mov dword [eax], esi
mov esi, eax
push ebp
push ebx
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], ebp
add edi, ebp
mov byte [edi], 0
mov ebp, dword [esi + 4]
xor edi, edi
test ebp, ebp
je 0x41f284
mov eax, dword [esi + 8]
mov edi, ebp
neg edi
add eax, ebp
dec eax
xor ecx, ecx
nop dword [eax + eax]
mov edx, ebp
add edx, ecx
je 0x41f282
lea ebx, [ecx - 1]
inc edi
cmp byte [eax + ecx], 0x20
mov ecx, ebx
jne 0x41f230
mov eax, ebp
add eax, ebx
jae 0x41f282
cmp dword [esi], 0
je 0x41f33d
mov eax, dword [esi + 8]
lea ecx, [eax + ebp]
add ecx, ebx
inc ecx
mov edx, ebx
not edx
push edx
push ecx
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
mov eax, dword [esi + 4]
not ebp
add ebp, eax
sub ebp, ebx
mov dword [esi + 4], ebp
add eax, dword [esi + 8]
mov byte [edi + eax - 1], 0
mov edi, dword [esi + 4]
jmp 0x41f284
mov edi, ebp
mov ebp, dword [esi + 8]
push edi
push 0x28
push ebp
call sub.api_ms_win_crt_private_l1_1_0.dll_memchr
add esp, 0xc
mov ecx, eax
sub ecx, ebp
test eax, eax
cmove ecx, edi
mov bl, 1
cmp edi, ecx
jbe 0x41f47e
cmp dword [esi], 0
je 0x41f2bb
mov dword [esi + 4], ecx
add ebp, ecx
mov edi, ebp
mov byte [ebp], 0
jmp 0x41f47e
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
test ebp, ebp
je 0x41f47e
mov dword [esp], esi
mov dword [esp + 4], edi
lea eax, [edi + 1]
mov ecx, 0x20
nop word [eax + eax]
mov esi, ecx
add ecx, ecx
cmp eax, esi
ja 0x41f2f0
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov edi, eax
mov byte [eax], 0
mov eax, dword [esp]
mov dword [eax + 8], edi
mov dword [eax], esi
mov esi, dword [esp + 4]
push esi
push ebp
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esp]
mov dword [eax + 4], esi
add edi, esi
mov byte [edi], 0
jmp 0x41f47e
mov ecx, edi
mov edx, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
jmp 0x41fa10
mov edi, ebx
neg edi
mov dword [esi + 4], edi
add ebp, dword [esi + 8]
add ebp, ebx
mov dword [esi + 8], ebp
jmp 0x41f287
mov ecx, edi
mov edx, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
jmp 0x41fd90
cmp dword [esi], 0
je 0x41f467
mov byte [ebx + ebp - 2], 0
mov edi, dword [esi + 4]
test edi, edi
je 0x41f47c
mov ebx, dword [esi + 8]
cmp byte [edi + ebx - 1], 0x20
jne 0x41f401
inc edi
mov ebp, edi
lea eax, [edi - 2]
mov dword [esi + 4], eax
cmp edi, 2
je 0x41f3f0
lea edi, [ebp - 1]
cmp byte [ebx + ebp - 3], 0x20
je 0x41f385
cmp dword [esi], 0
jne 0x41f3f5
lea eax, [edi - 1]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esi + 4], 0
mov eax, 0x20
mov esi, eax
add eax, eax
cmp edi, esi
ja 0x41f3b7
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov edi, eax
mov byte [eax], 0
mov eax, dword [esp]
mov dword [eax + 8], edi
mov dword [eax], esi
mov esi, eax
push dword [esp + 4]
push ebx
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 4]
mov dword [esi + 4], eax
mov ebx, edi
jmp 0x41f3f5
cmp dword [esi], 0
je 0x41f467
mov byte [ebx + ebp - 2], 0
mov edi, dword [esi + 4]
test edi, edi
je 0x41f47c
mov dword [esp], esi
mov eax, dword [esi + 8]
mov ebp, edi
neg ebp
add eax, edi
dec eax
xor ecx, ecx
mov bl, 1
mov edx, edi
add edx, ecx
je 0x41f47e
lea esi, [ecx - 1]
inc ebp
cmp byte [eax + ecx], 0x20
mov ecx, esi
jne 0x41f410
mov eax, edi
add eax, esi
jae 0x41f47e
mov ecx, dword [esp]
cmp dword [ecx], 0
je 0x41f4ff
mov eax, dword [ecx + 8]
lea ecx, [eax + edi]
add ecx, esi
inc ecx
mov edx, esi
not edx
push edx
push ecx
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
mov ecx, dword [esp]
mov eax, dword [ecx + 4]
not edi
add edi, eax
sub edi, esi
mov dword [ecx + 4], edi
add eax, dword [ecx + 8]
mov byte [ebp + eax - 1], 0
jmp 0x41f47e
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
mov bl, 1
mov eax, ebx
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
mov edx, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
jmp 0x41ff90
mov ecx, edi
mov edx, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
jmp 0x4201f0
mov dword [esp], esi
mov dword [esi + 4], 0
lea eax, [ebp + 1]
mov ecx, 0x20
mov esi, ecx
add ecx, ecx
cmp eax, esi
ja 0x41f4ba
push esi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov ecx, dword [esp]
mov dword [ecx + 8], eax
mov dword [ecx], esi
mov esi, ecx
push ebp
push edi
push eax
mov edi, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], ebp
add edi, ebp
mov byte [edi], 0
jmp 0x41f47e
mov ecx, edi
mov edx, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
jmp 0x420390
mov eax, esi
neg eax
mov dword [ecx + 4], eax
add edi, dword [ecx + 8]
add edi, esi
mov dword [ecx + 8], edi
jmp 0x41f47e
mov ecx, edi
mov edx, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
jmp 0x420660
mov ecx, edi
mov edx, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
jmp 0x420910
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov esi, edx
mov eax, dword [ecx + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], str.__version
mov dword [esp + 0x10], 0
lea eax, [esp + 8]
push 0
push eax
push edx
call fcn.00474b20
add esp, 0xc
mov edi, eax
test eax, eax
jne 0x41f791
mov eax, dword [esi + 4]
xor ecx, ecx
test eax, eax
mov dword [esp], edi
je 0x41f6b7
mov ebp, dword [esi + 8]
cmp byte [eax + ebp - 1], 0xa
jne 0x41f61a
inc eax
nop dword [eax]
mov ebx, eax
add eax, 0xfffffffe
mov dword [esi + 4], eax
cmp ebx, 2
je 0x41f601
lea eax, [ebx - 1]
cmp byte [ebp + ebx - 3], 0xa
je 0x41f5a0
cmp dword [esi], 0
jne 0x41f60a
lea ecx, [eax - 1]
mov dword [esp + 4], ecx
mov dword [esi + 4], 0
mov ecx, 0x20
nop
mov edi, ecx
add ecx, ecx
cmp eax, edi
ja 0x41f5d0
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
mov edi, dword [esp + 4]
push edi
push ebp
push eax
mov ebp, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], edi
xor ecx, ecx
jmp 0x41f60a
cmp dword [esi], 0
je 0x41f6a2
mov byte [ebp + ebx - 2], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x41f6b7
mov ebp, dword [esi + 8]
cmp byte [eax + ebp - 1], 0x20
jne 0x41f68f
inc eax
nop word cs:[eax + eax]
mov ebx, eax
add eax, 0xfffffffe
mov dword [esi + 4], eax
cmp ebx, 2
je 0x41f693
lea eax, [ebx - 1]
cmp byte [ebp + ebx - 3], 0x20
je 0x41f630
cmp dword [esi], 0
jne 0x41f698
lea ecx, [eax - 1]
mov dword [esp + 4], ecx
mov dword [esi + 4], 0
mov ecx, 0x20
nop
mov edi, ecx
add ecx, ecx
cmp eax, edi
ja 0x41f660
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
mov edi, dword [esp + 4]
push edi
push ebp
push eax
mov ebp, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], edi
jmp 0x41f698
mov ecx, eax
jmp 0x41f6b7
cmp dword [esi], 0
je 0x41f6a2
mov byte [ebp + ebx - 2], 0
mov ecx, dword [esi + 4]
jmp 0x41f6b7
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
mov ebx, dword [esi + 8]
push ecx
push 0x20
push ebx
mov edi, ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memchr
mov ecx, edi
add esp, 0xc
mov edi, eax
sub edi, ebx
test eax, eax
cmove edi, ecx
mov ebp, ecx
sub ebp, edi
jbe 0x41f706
cmp dword [esi], 0
je 0x41f70a
lea eax, [ebx + edi]
inc eax
not edi
add ecx, edi
push ecx
push eax
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
add edi, dword [esi + 4]
mov dword [esi + 4], edi
mov eax, dword [esi + 8]
mov byte [eax + edi], 0
mov ebp, dword [esi + 4]
mov ebx, dword [esi + 8]
jmp 0x41f712
mov ebp, ecx
jmp 0x41f712
mov dword [esi + 4], ebp
add ebx, edi
mov dword [esi + 8], ebx
mov edi, dword [esp]
push ebp
push 0x20
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memchr
add esp, 0xc
mov ecx, eax
sub ecx, ebx
test eax, eax
cmove ecx, ebp
cmp ebp, ecx
jbe 0x41f791
cmp dword [esi], 0
je 0x41f73a
mov dword [esi + 4], ecx
add ebx, ecx
jmp 0x41f78e
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
test ebx, ebx
je 0x41f791
lea eax, [ebp + 1]
mov ecx, 0x20
nop dword [eax + eax]
mov edi, ecx
add ecx, ecx
cmp eax, edi
ja 0x41f760
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
push ebp
push ebx
push eax
mov ebx, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], ebp
add ebx, ebp
mov edi, dword [esp]
mov byte [ebx], 0
test edi, edi
sete al
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov esi, edx
mov edi, ecx
push str.NU_VERSION
call sub.api_ms_win_crt_environment_l1_1_0.dll_getenv
add esp, 4
mov ebx, eax
cmp dword [esi], 0
je 0x41f7c7
mov eax, dword [esi + 8]
mov byte [eax], 0
jmp 0x41f7cf
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
mov dword [esi + 4], 0
test ebx, ebx
je 0x41f87a
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
je 0x41f87a
mov ebp, eax
mov eax, dword [esi]
mov ecx, eax
sub ecx, 1
jb 0x41f805
cmp ecx, ebp
jb 0x41f805
mov eax, dword [esi + 8]
xor ecx, ecx
jmp 0x41f856
mov dword [esp], edi
cmp eax, 2
mov ecx, 0x20
cmovae ecx, eax
mov edx, ebp
inc edx
nop word cs:[eax + eax]
mov edi, ecx
add ecx, ecx
cmp edx, edi
ja 0x41f820
test eax, eax
je 0x41f840
push edi
push dword [esi + 8]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
mov dword [esi + 8], eax
mov ecx, dword [esi + 4]
jmp 0x41f851
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
xor ecx, ecx
mov dword [esi], edi
mov edi, dword [esp]
add ecx, eax
push ebp
push ebx
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 4]
add eax, ebp
mov dword [esi + 4], eax
mov ecx, dword [esi + 8]
mov byte [ecx + eax], 0
mov al, 1
cmp dword [esi + 4], 0
jne 0x41f8a8
mov eax, dword [edi + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], str.__version
mov dword [esp + 0x10], 0
lea eax, [esp + 8]
push 0
push eax
push esi
call fcn.00474b20
add esp, 0xc
test eax, eax
sete al
je 0x41f8b0
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esi + 4]
test edx, edx
je 0x41f8a8
mov ebp, dword [esi + 8]
cmp byte [edx + ebp - 1], 0xa
jne 0x41f95c
inc edx
nop word cs:[eax + eax]
mov edi, edx
lea ecx, [edx - 2]
mov dword [esi + 4], ecx
cmp edx, 2
je 0x41f943
lea edx, [edi - 1]
cmp byte [ebp + edi - 3], 0xa
je 0x41f8d0
cmp dword [esi], 0
jne 0x41f94c
mov byte [esp], al
lea eax, [edx - 1]
mov dword [esp + 4], eax
mov dword [esi + 4], 0
mov ecx, 0x20
nop word cs:[eax + eax]
mov ebx, ecx
add ecx, ecx
cmp edx, ebx
ja 0x41f910
push ebx
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], ebx
mov ebx, dword [esp + 4]
push ebx
push ebp
push eax
mov ebp, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], ebx
movzx eax, byte [esp]
jmp 0x41f94c
cmp dword [esi], 0
je 0x41f9f2
mov byte [ebp + edi - 2], 0
mov edx, dword [esi + 4]
test edx, edx
je 0x41f8a8
mov ebp, dword [esi + 8]
cmp byte [edx + ebp - 1], 0x20
jne 0x41f8a8
inc edx
nop dword [eax + eax]
mov edi, edx
lea ecx, [edx - 2]
mov dword [esi + 4], ecx
cmp edx, 2
je 0x41f9e3
lea edx, [edi - 1]
cmp byte [ebp + edi - 3], 0x20
je 0x41f970
cmp dword [esi], 0
jne 0x41f9e8
mov byte [esp], al
lea eax, [edx - 1]
mov dword [esp + 4], eax
mov dword [esi + 4], 0
mov ecx, 0x20
nop word cs:[eax + eax]
mov ebx, ecx
add ecx, ecx
cmp edx, ebx
ja 0x41f9b0
push ebx
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], ebx
mov ebx, dword [esp + 4]
push ebx
push ebp
push eax
mov ebp, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], ebx
movzx eax, byte [esp]
jmp 0x41f9e8
cmp dword [esi], 0
je 0x41f9f2
mov byte [ebp + edi - 2], 0
jmp 0x41f8a8
mov dword [esi], 0
mov dword [esi + 4], 0
mov ecx, dword [0x5052b0]
mov dword [esi + 8], ecx
jmp 0x41f8a8
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov esi, edx
mov eax, dword [ecx + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], str.__version
mov dword [esp + 0x14], 0
lea eax, [esp + 0xc]
push 1
push eax
push edx
call fcn.00474b20
add esp, 0xc
mov ebx, eax
test eax, eax
je 0x41fa53
test ebx, ebx
sete al
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esi
mov esi, dword [esi + 4]
test esi, esi
je 0x41fa46
mov ebp, dword [ecx + 8]
cmp byte [esi + ebp - 1], 0xa
mov dword [esp + 4], ebx
jne 0x41fb01
inc esi
nop
mov ebx, esi
lea eax, [esi - 2]
mov dword [ecx + 4], eax
cmp esi, 2
je 0x41fae4
lea esi, [ebx - 1]
cmp byte [ebp + ebx - 3], 0xa
je 0x41fa70
cmp dword [ecx], 0
jne 0x41faed
lea eax, [esi - 1]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [ecx + 4], 0
mov eax, 0x20
nop word cs:[eax + eax]
mov edi, eax
add eax, eax
cmp esi, edi
ja 0x41fab0
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov esi, dword [esp]
mov dword [esi + 8], eax
mov dword [esi], edi
mov edi, dword [esp + 8]
push edi
push ebp
push eax
mov ebp, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov ecx, esi
add esp, 0xc
mov dword [esi + 4], edi
jmp 0x41faed
cmp dword [ecx], 0
je 0x41fcac
mov byte [ebp + ebx - 2], 0
mov esi, dword [ecx + 4]
test esi, esi
mov ebx, dword [esp + 4]
je 0x41fa46
mov ebp, dword [ecx + 8]
cmp byte [esi + ebp - 1], 0x20
jne 0x41fba5
inc esi
mov edi, esi
lea eax, [esi - 2]
mov dword [ecx + 4], eax
cmp esi, 2
je 0x41fb8c
lea esi, [edi - 1]
cmp byte [ebp + edi - 3], 0x20
je 0x41fb10
cmp dword [ecx], 0
jne 0x41fb95
lea eax, [esi - 1]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [ecx + 4], 0
mov eax, 0x20
nop word cs:[eax + eax]
mov ebx, eax
add eax, eax
cmp esi, ebx
ja 0x41fb50
push ebx
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov esi, eax
mov byte [eax], 0
mov eax, dword [esp]
mov dword [eax + 8], esi
mov dword [eax], ebx
mov ebx, dword [esp + 8]
push ebx
push ebp
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov ecx, dword [esp + 0xc]
add esp, 0xc
mov dword [ecx + 4], ebx
mov ebp, esi
mov ebx, dword [esp + 4]
jmp 0x41fb95
cmp dword [ecx], 0
je 0x41fd30
mov byte [ebp + edi - 2], 0
mov esi, dword [ecx + 4]
test esi, esi
je 0x41fa46
mov dword [esp], ecx
mov eax, dword [ecx + 8]
mov edi, esi
neg edi
add eax, esi
dec eax
xor ecx, ecx
nop word cs:[eax + eax]
mov edx, esi
add edx, ecx
je 0x41fc19
lea ebx, [ecx - 1]
inc edi
cmp byte [eax + ecx], 0x29
mov ecx, ebx
jne 0x41fbc0
mov eax, esi
add eax, ebx
jae 0x41fc19
mov edx, dword [esp]
cmp dword [edx], 0
je 0x41fd59
mov eax, dword [edx + 8]
lea ecx, [eax + esi]
add ecx, ebx
inc ecx
mov edx, ebx
not edx
push edx
push ecx
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov edx, dword [esp + 0xc]
add esp, 0xc
mov eax, dword [edx + 4]
not esi
add esi, eax
sub esi, ebx
mov dword [edx + 4], esi
add eax, dword [edx + 8]
mov byte [edi + eax - 1], 0
mov esi, dword [edx + 4]
jmp 0x41fc1c
mov edx, dword [esp]
mov ebx, dword [esp + 4]
test esi, esi
je 0x41fa46
mov ebp, dword [edx + 8]
cmp byte [esi + ebp - 1], 0x20
jne 0x41fce3
inc esi
nop word [eax + eax]
mov edi, esi
lea eax, [esi - 2]
mov dword [edx + 4], eax
cmp esi, 2
je 0x41fcca
lea esi, [edi - 1]
cmp byte [ebp + edi - 3], 0x20
je 0x41fc40
cmp dword [edx], 0
jne 0x41fcd3
lea eax, [esi - 1]
mov dword [esp + 8], eax
mov dword [edx + 4], 0
mov eax, 0x20
nop
mov ebx, eax
add eax, eax
cmp esi, ebx
ja 0x41fc70
push ebx
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov esi, eax
mov byte [eax], 0
mov eax, dword [esp]
mov dword [eax + 8], esi
mov dword [eax], ebx
mov ebx, dword [esp + 8]
push ebx
push ebp
push esi
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov edx, dword [esp + 0xc]
add esp, 0xc
mov dword [edx + 4], ebx
mov ebp, esi
mov ebx, dword [esp + 4]
jmp 0x41fcd3
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [0x5052b0]
mov dword [ecx + 8], eax
mov ebx, dword [esp + 4]
jmp 0x41fa46
cmp dword [edx], 0
je 0x41fd6f
mov byte [ebp + edi - 2], 0
mov esi, dword [edx + 4]
test esi, esi
je 0x41fa46
mov eax, dword [edx + 8]
xor edi, edi
nop dword [eax + eax]
cmp byte [eax + edi], 0x20
jne 0x41fcfd
inc edi
cmp esi, edi
jne 0x41fcf0
mov edi, esi
test edi, edi
je 0x41fa46
cmp dword [edx], 0
je 0x41fd4a
lea ecx, [eax + edi]
sub esi, edi
push esi
push ecx
push eax
mov esi, edx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
sub eax, edi
mov dword [esi + 4], eax
mov byte [ecx + eax], 0
jmp 0x41fa46
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [0x5052b0]
mov dword [ecx + 8], eax
jmp 0x41fa46
sub esi, edi
mov dword [edx + 4], esi
add eax, edi
mov dword [edx + 8], eax
jmp 0x41fa46
mov eax, ebx
neg eax
mov dword [edx + 4], eax
add esi, dword [edx + 8]
add esi, ebx
mov dword [edx + 8], esi
mov esi, eax
jmp 0x41fc1c
mov dword [edx], 0
mov dword [edx + 4], 0
mov eax, dword [0x5052b0]
mov dword [edx + 8], eax
jmp 0x41fa46
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov esi, edx
mov eax, dword [ecx + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x4ac20e
mov dword [esp + 0x10], str.echo__OKSH_VERSION
mov dword [esp + 0x14], 0
lea eax, [esp + 8]
push 0
push eax
push edx
call fcn.00474b20
add esp, 0xc
mov edi, eax
test eax, eax
jne 0x41ff7b
mov eax, dword [esi + 4]
xor ecx, ecx
test eax, eax
je 0x41ff2a
mov ebx, dword [esi + 8]
cmp byte [eax + ebx - 1], 0xa
jne 0x41fe7d
inc eax
nop
mov ebp, eax
add eax, 0xfffffffe
mov dword [esi + 4], eax
cmp ebp, 2
je 0x41fe64
lea eax, [ebp - 1]
cmp byte [ebx + ebp - 3], 0xa
je 0x41fdf0
cmp dword [esi], 0
jne 0x41fe6d
mov dword [esp + 4], edi
lea ecx, [eax - 1]
mov dword [esp], ecx
mov dword [esi + 4], 0
mov ecx, 0x20
nop word cs:[eax + eax]
mov edi, ecx
add ecx, ecx
cmp eax, edi
ja 0x41fe30
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
mov edi, dword [esp]
push edi
push ebx
push eax
mov ebx, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], edi
mov edi, dword [esp + 4]
xor ecx, ecx
jmp 0x41fe6d
cmp dword [esi], 0
je 0x41ff15
mov byte [ebx + ebp - 2], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x41ff2a
mov ebx, dword [esi + 8]
cmp byte [eax + ebx - 1], 0x20
jne 0x41ff02
inc eax
nop dword [eax + eax]
mov ebp, eax
add eax, 0xfffffffe
mov dword [esi + 4], eax
cmp ebp, 2
je 0x41ff06
lea eax, [ebp - 1]
cmp byte [ebx + ebp - 3], 0x20
je 0x41fe90
cmp dword [esi], 0
jne 0x41ff0b
mov dword [esp + 4], edi
lea ecx, [eax - 1]
mov dword [esp], ecx
mov dword [esi + 4], 0
mov ecx, 0x20
nop word cs:[eax + eax]
mov edi, ecx
add ecx, ecx
cmp eax, edi
ja 0x41fed0
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
mov edi, dword [esp]
push edi
push ebx
push eax
mov ebx, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], edi
mov edi, dword [esp + 4]
jmp 0x41ff0b
mov ecx, eax
jmp 0x41ff2a
cmp dword [esi], 0
je 0x41ff15
mov byte [ebx + ebp - 2], 0
mov ecx, dword [esi + 4]
jmp 0x41ff2a
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
mov ebx, dword [esi + 8]
push ecx
push 0x20
push ebx
mov ebp, ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memchr
mov ecx, ebp
add esp, 0xc
mov ebp, eax
sub ebp, ebx
test eax, eax
cmove ebp, ecx
mov eax, ecx
sub eax, ebp
jbe 0x41ff7b
cmp dword [esi], 0
je 0x41ff73
lea eax, [ebx + ebp]
inc eax
not ebp
add ecx, ebp
push ecx
push eax
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
add ebp, dword [esi + 4]
mov dword [esi + 4], ebp
mov eax, dword [esi + 8]
mov byte [eax + ebp], 0
jmp 0x41ff7b
mov dword [esi + 4], eax
add ebx, ebp
mov dword [esi + 8], ebx
test edi, edi
sete al
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov esi, edx
mov eax, dword [ecx + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], str.__version
mov dword [esp + 0x10], 0
lea eax, [esp + 8]
push 0
push eax
push edx
call fcn.00474b20
add esp, 0xc
mov edi, eax
test eax, eax
jne 0x4201e1
mov eax, dword [esi + 4]
xor ecx, ecx
test eax, eax
mov dword [esp], edi
je 0x420107
mov ebp, dword [esi + 8]
cmp byte [eax + ebp - 1], 0xa
jne 0x42006a
inc eax
nop dword [eax]
mov ebx, eax
add eax, 0xfffffffe
mov dword [esi + 4], eax
cmp ebx, 2
je 0x420051
lea eax, [ebx - 1]
cmp byte [ebp + ebx - 3], 0xa
je 0x41fff0
cmp dword [esi], 0
jne 0x42005a
lea ecx, [eax - 1]
mov dword [esp + 4], ecx
mov dword [esi + 4], 0
mov ecx, 0x20
nop
mov edi, ecx
add ecx, ecx
cmp eax, edi
ja 0x420020
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
mov edi, dword [esp + 4]
push edi
push ebp
push eax
mov ebp, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], edi
xor ecx, ecx
jmp 0x42005a
cmp dword [esi], 0
je 0x4200f2
mov byte [ebp + ebx - 2], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x420107
mov ebp, dword [esi + 8]
cmp byte [eax + ebp - 1], 0x20
jne 0x4200df
inc eax
nop word cs:[eax + eax]
mov ebx, eax
add eax, 0xfffffffe
mov dword [esi + 4], eax
cmp ebx, 2
je 0x4200e3
lea eax, [ebx - 1]
cmp byte [ebp + ebx - 3], 0x20
je 0x420080
cmp dword [esi], 0
jne 0x4200e8
lea ecx, [eax - 1]
mov dword [esp + 4], ecx
mov dword [esi + 4], 0
mov ecx, 0x20
nop
mov edi, ecx
add ecx, ecx
cmp eax, edi
ja 0x4200b0
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
mov edi, dword [esp + 4]
push edi
push ebp
push eax
mov ebp, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], edi
jmp 0x4200e8
mov ecx, eax
jmp 0x420107
cmp dword [esi], 0
je 0x4200f2
mov byte [ebp + ebx - 2], 0
mov ecx, dword [esi + 4]
jmp 0x420107
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
mov ebx, dword [esi + 8]
push ecx
push 0x20
push ebx
mov edi, ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memchr
mov ecx, edi
add esp, 0xc
mov edi, eax
sub edi, ebx
test eax, eax
cmove edi, ecx
mov ebp, ecx
sub ebp, edi
jbe 0x420156
cmp dword [esi], 0
je 0x42015a
lea eax, [ebx + edi]
inc eax
not edi
add ecx, edi
push ecx
push eax
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
add edi, dword [esi + 4]
mov dword [esi + 4], edi
mov eax, dword [esi + 8]
mov byte [eax + edi], 0
mov ebp, dword [esi + 4]
mov ebx, dword [esi + 8]
jmp 0x420162
mov ebp, ecx
jmp 0x420162
mov dword [esi + 4], ebp
add ebx, edi
mov dword [esi + 8], ebx
mov edi, dword [esp]
push ebp
push 9
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memchr
add esp, 0xc
mov ecx, eax
sub ecx, ebx
test eax, eax
cmove ecx, ebp
cmp ebp, ecx
jbe 0x4201e1
cmp dword [esi], 0
je 0x42018a
mov dword [esi + 4], ecx
add ebx, ecx
jmp 0x4201de
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
test ebx, ebx
je 0x4201e1
lea eax, [ebp + 1]
mov ecx, 0x20
nop dword [eax + eax]
mov edi, ecx
add ecx, ecx
cmp eax, edi
ja 0x4201b0
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
push ebp
push ebx
push eax
mov ebx, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], ebp
add ebx, ebp
mov edi, dword [esp]
mov byte [ebx], 0
test edi, edi
sete al
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov esi, edx
mov eax, dword [ecx + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], str.__version
mov dword [esp + 0x10], 0
lea eax, [esp + 8]
push 0
push eax
push edx
call fcn.00474b20
add esp, 0xc
test eax, eax
je 0x420231
test eax, eax
sete al
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esi + 4]
test edx, edx
je 0x420224
mov ebp, dword [esi + 8]
cmp byte [edx + ebp - 1], 0xa
jne 0x4202db
inc edx
nop word [eax + eax]
mov ebx, edx
lea ecx, [edx - 2]
mov dword [esi + 4], ecx
cmp edx, 2
je 0x4202c2
lea edx, [ebx - 1]
cmp byte [ebp + ebx - 3], 0xa
je 0x420250
cmp dword [esi], 0
jne 0x4202cb
mov dword [esp + 4], eax
lea eax, [edx - 1]
mov dword [esp], eax
mov dword [esi + 4], 0
mov ecx, 0x20
nop word cs:[eax + eax]
mov edi, ecx
add ecx, ecx
cmp edx, edi
ja 0x420290
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
mov edi, dword [esp]
push edi
push ebp
push eax
mov ebp, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], edi
mov eax, dword [esp + 4]
jmp 0x4202cb
cmp dword [esi], 0
je 0x420371
mov byte [ebp + ebx - 2], 0
mov edx, dword [esi + 4]
test edx, edx
je 0x420224
mov ebp, dword [esi + 8]
cmp byte [edx + ebp - 1], 0x20
jne 0x420224
inc edx
nop word [eax + eax]
mov ebx, edx
lea ecx, [edx - 2]
mov dword [esi + 4], ecx
cmp edx, 2
je 0x420362
lea edx, [ebx - 1]
cmp byte [ebp + ebx - 3], 0x20
je 0x4202f0
cmp dword [esi], 0
jne 0x420367
mov dword [esp + 4], eax
lea eax, [edx - 1]
mov dword [esp], eax
mov dword [esi + 4], 0
mov ecx, 0x20
nop word cs:[eax + eax]
mov edi, ecx
add ecx, ecx
cmp edx, edi
ja 0x420330
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
mov edi, dword [esp]
push edi
push ebp
push eax
mov ebp, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], edi
mov eax, dword [esp + 4]
jmp 0x420367
cmp dword [esi], 0
je 0x420371
mov byte [ebp + ebx - 2], 0
jmp 0x420224
mov dword [esi], 0
mov dword [esi + 4], 0
mov ecx, dword [0x5052b0]
mov dword [esi + 8], ecx
jmp 0x420224
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov esi, edx
mov eax, dword [ecx + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], str.__help
mov dword [esp + 0x10], 0
lea eax, [esp + 8]
push 1
push eax
push edx
call fcn.00474b20
add esp, 0xc
test eax, eax
je 0x4203d1
test eax, eax
sete al
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esi + 4]
xor ecx, ecx
test edx, edx
mov dword [esp], eax
je 0x420507
mov ebx, dword [esi + 8]
cmp byte [edx + ebx - 1], 0xa
jne 0x42046a
inc edx
nop dword [eax]
mov ebp, edx
lea eax, [edx - 2]
mov dword [esi + 4], eax
cmp edx, 2
je 0x420451
lea edx, [ebp - 1]
cmp byte [ebx + ebp - 3], 0xa
je 0x4203f0
cmp dword [esi], 0
jne 0x42045a
lea eax, [edx - 1]
mov dword [esp + 4], eax
mov dword [esi + 4], 0
mov ecx, 0x20
nop
mov edi, ecx
add ecx, ecx
cmp edx, edi
ja 0x420420
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
mov edi, dword [esp + 4]
push edi
push ebx
push eax
mov ebx, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], edi
xor ecx, ecx
jmp 0x42045a
cmp dword [esi], 0
je 0x4204f2
mov byte [ebx + ebp - 2], 0
mov edx, dword [esi + 4]
test edx, edx
je 0x420507
mov ebp, dword [esi + 8]
cmp byte [edx + ebp - 1], 0x20
jne 0x4204df
inc edx
nop word cs:[eax + eax]
mov ebx, edx
lea eax, [edx - 2]
mov dword [esi + 4], eax
cmp edx, 2
je 0x4204e3
lea edx, [ebx - 1]
cmp byte [ebp + ebx - 3], 0x20
je 0x420480
cmp dword [esi], 0
jne 0x4204e8
lea eax, [edx - 1]
mov dword [esp + 4], eax
mov dword [esi + 4], 0
mov ecx, 0x20
nop
mov edi, ecx
add ecx, ecx
cmp edx, edi
ja 0x4204b0
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
mov edi, dword [esp + 4]
push edi
push ebp
push eax
mov ebp, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], edi
jmp 0x4204e8
mov ecx, edx
jmp 0x420507
cmp dword [esi], 0
je 0x4204f2
mov byte [ebp + ebx - 2], 0
mov ecx, dword [esi + 4]
jmp 0x420507
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
mov ebx, dword [esi + 8]
push ecx
push 0x20
push ebx
mov edi, ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memchr
mov ecx, edi
add esp, 0xc
mov edi, eax
sub edi, ebx
test eax, eax
cmove edi, ecx
mov ebp, ecx
sub ebp, edi
jbe 0x420556
cmp dword [esi], 0
je 0x42055a
lea eax, [ebx + edi]
inc eax
not edi
add ecx, edi
push ecx
push eax
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
add edi, dword [esi + 4]
mov dword [esi + 4], edi
mov eax, dword [esi + 8]
mov byte [eax + edi], 0
mov ebp, dword [esi + 4]
mov ebx, dword [esi + 8]
jmp 0x420562
mov ebp, ecx
jmp 0x420562
mov dword [esi + 4], ebp
add ebx, edi
mov dword [esi + 8], ebx
push ebp
push 0x20
push ebx
call sub.api_ms_win_crt_private_l1_1_0.dll_memchr
add esp, 0xc
mov ecx, eax
sub ecx, ebx
test eax, eax
cmove ecx, ebp
cmp ebp, ecx
jbe 0x420587
cmp dword [esi], 0
je 0x420593
mov dword [esi + 4], ecx
add ebx, ecx
jmp 0x4205eb
mov eax, dword [esp]
test ebp, ebp
jne 0x4205fc
jmp 0x4203c4
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
test ebx, ebx
mov eax, dword [esp]
je 0x4203c4
lea eax, [ebp + 1]
mov ecx, 0x20
nop dword [eax + eax]
mov edi, ecx
add ecx, ecx
cmp eax, edi
ja 0x4205c0
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
push ebp
push ebx
mov ebx, eax
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], ebp
add ebx, ebp
mov eax, dword [esp]
mov byte [ebx], 0
mov ebp, dword [esi + 4]
test ebp, ebp
je 0x4203c4
mov edx, dword [esi + 8]
xor edi, edi
nop word cs:[eax + eax]
cmp byte [edx + edi], 0x76
jne 0x42061d
inc edi
cmp ebp, edi
jne 0x420610
mov edi, ebp
test edi, edi
je 0x4203c4
cmp dword [esi], 0
je 0x420651
lea ecx, [edx + edi]
sub ebp, edi
push ebp
push ecx
push edx
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
sub eax, edi
mov dword [esi + 4], eax
mov byte [ecx + eax], 0
mov eax, dword [esp]
jmp 0x4203c4
sub ebp, edi
mov dword [esi + 4], ebp
add edx, edi
mov dword [esi + 8], edx
jmp 0x4203c4
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov esi, edx
mov edi, ecx
push str.XONSH_VERSION
call sub.api_ms_win_crt_environment_l1_1_0.dll_getenv
add esp, 4
mov ebx, eax
cmp dword [esi], 0
je 0x420687
mov eax, dword [esi + 8]
mov byte [eax], 0
jmp 0x42068f
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
mov dword [esi + 4], 0
test ebx, ebx
je 0x42073e
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
je 0x42073e
mov ebp, eax
mov eax, dword [esi]
mov ecx, eax
sub ecx, 1
jb 0x4206c5
cmp ecx, ebp
jb 0x4206c5
mov eax, dword [esi + 8]
xor ecx, ecx
jmp 0x420716
mov dword [esp], edi
cmp eax, 2
mov ecx, 0x20
cmovae ecx, eax
mov edx, ebp
inc edx
nop word cs:[eax + eax]
mov edi, ecx
add ecx, ecx
cmp edx, edi
ja 0x4206e0
test eax, eax
je 0x420700
push edi
push dword [esi + 8]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
mov dword [esi + 8], eax
mov ecx, dword [esi + 4]
jmp 0x420711
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
xor ecx, ecx
mov dword [esi], edi
mov edi, dword [esp]
add ecx, eax
push ebp
push ebx
push ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 4]
add eax, ebp
mov dword [esi + 4], eax
mov ecx, dword [esi + 8]
mov byte [ecx + eax], 0
mov bl, 1
cmp dword [esi + 4], 0
jne 0x4208f9
mov eax, dword [edi + 8]
mov dword [esp + 4], eax
mov dword [esp + 8], str.__version
mov dword [esp + 0xc], 0
lea eax, [esp + 4]
push 1
push eax
push esi
call fcn.00474b20
add esp, 0xc
xor ecx, ecx
mov ebx, 0
test eax, eax
jne 0x4208f9
mov eax, dword [esi + 4]
test eax, eax
je 0x4208a6
mov ebx, dword [esi + 8]
cmp byte [eax + ebx - 1], 0xa
jne 0x420809
inc eax
nop
mov edi, eax
add eax, 0xfffffffe
mov dword [esi + 4], eax
cmp edi, 2
je 0x4207f0
lea eax, [edi - 1]
cmp byte [ebx + edi - 3], 0xa
je 0x420790
cmp dword [esi], 0
jne 0x4207f9
lea ecx, [eax - 1]
mov dword [esp], ecx
mov dword [esi + 4], 0
mov ecx, 0x20
nop
mov ebp, ecx
add ecx, ecx
cmp eax, ebp
ja 0x4207c0
push ebp
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], ebp
mov ebp, dword [esp]
push ebp
push ebx
push eax
mov ebx, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], ebp
xor ecx, ecx
jmp 0x4207f9
cmp dword [esi], 0
je 0x420891
mov byte [ebx + edi - 2], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x4208a6
mov ebx, dword [esi + 8]
cmp byte [eax + ebx - 1], 0x20
jne 0x42087e
inc eax
nop word cs:[eax + eax]
mov edi, eax
add eax, 0xfffffffe
mov dword [esi + 4], eax
cmp edi, 2
je 0x420882
lea eax, [edi - 1]
cmp byte [ebx + edi - 3], 0x20
je 0x420820
cmp dword [esi], 0
jne 0x420887
lea ecx, [eax - 1]
mov dword [esp], ecx
mov dword [esi + 4], 0
mov ecx, 0x20
nop
mov ebp, ecx
add ecx, ecx
cmp eax, ebp
ja 0x420850
push ebp
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], ebp
mov ebp, dword [esp]
push ebp
push ebx
push eax
mov ebx, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], ebp
jmp 0x420887
mov ecx, eax
jmp 0x4208a6
cmp dword [esi], 0
je 0x420891
mov byte [ebx + edi - 2], 0
mov ecx, dword [esi + 4]
jmp 0x4208a6
mov dword [esi], 0
mov dword [esi + 4], 0
mov eax, dword [0x5052b0]
mov dword [esi + 8], eax
mov edi, dword [esi + 8]
push ecx
push 0x2f
push edi
mov ebx, ecx
call sub.api_ms_win_crt_private_l1_1_0.dll_memchr
mov ecx, ebx
add esp, 0xc
mov ebp, eax
sub ebp, edi
test eax, eax
cmove ebp, ebx
mov bl, 1
mov eax, ecx
sub eax, ebp
jbe 0x4208f9
cmp dword [esi], 0
je 0x4208f1
lea eax, [edi + ebp]
inc eax
not ebp
add ecx, ebp
push ecx
push eax
push edi
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
add esp, 0xc
add ebp, dword [esi + 4]
mov dword [esi + 4], ebp
mov eax, dword [esi + 8]
mov byte [eax + ebp], 0
jmp 0x4208f9
mov dword [esi + 4], eax
add edi, ebp
mov dword [esi + 8], edi
mov eax, ebx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov esi, edx
mov eax, dword [ecx + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], str._NoLogo
mov dword [esp + 0x10], str._NoProfile
mov dword [esp + 0x14], str._Command
mov dword [esp + 0x18], str._PSVersionTable.PSVersion.ToString__
mov dword [esp + 0x1c], 0
lea eax, [esp + 8]
push 0
push eax
push edx
call fcn.00474b20
add esp, 0xc
test eax, eax
je 0x420969
test eax, eax
sete al
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esi + 4]
test edx, edx
je 0x42095c
mov ebp, dword [esi + 8]
cmp byte [edx + ebp - 1], 0xa
jne 0x420a0b
inc edx
nop
mov ebx, edx
lea ecx, [edx - 2]
mov dword [esi + 4], ecx
cmp edx, 2
je 0x4209f2
lea edx, [ebx - 1]
cmp byte [ebp + ebx - 3], 0xa
je 0x420980
cmp dword [esi], 0
jne 0x4209fb
mov dword [esp + 4], eax
lea eax, [edx - 1]
mov dword [esp], eax
mov dword [esi + 4], 0
mov ecx, 0x20
nop word cs:[eax + eax]
mov edi, ecx
add ecx, ecx
cmp edx, edi
ja 0x4209c0
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
mov edi, dword [esp]
push edi
push ebp
push eax
mov ebp, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], edi
mov eax, dword [esp + 4]
jmp 0x4209fb
cmp dword [esi], 0
je 0x420aa1
mov byte [ebp + ebx - 2], 0
mov edx, dword [esi + 4]
test edx, edx
je 0x42095c
mov ebp, dword [esi + 8]
cmp byte [edx + ebp - 1], 0x20
jne 0x42095c
inc edx
nop word [eax + eax]
mov ebx, edx
lea ecx, [edx - 2]
mov dword [esi + 4], ecx
cmp edx, 2
je 0x420a92
lea edx, [ebx - 1]
cmp byte [ebp + ebx - 3], 0x20
je 0x420a20
cmp dword [esi], 0
jne 0x420a97
mov dword [esp + 4], eax
lea eax, [edx - 1]
mov dword [esp], eax
mov dword [esi + 4], 0
mov ecx, 0x20
nop word cs:[eax + eax]
mov edi, ecx
add ecx, ecx
cmp edx, edi
ja 0x420a60
push edi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov byte [eax], 0
mov dword [esi + 8], eax
mov dword [esi], edi
mov edi, dword [esp]
push edi
push ebp
push eax
mov ebp, eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov dword [esi + 4], edi
mov eax, dword [esp + 4]
jmp 0x420a97
cmp dword [esi], 0
je 0x420aa1
mov byte [ebp + ebx - 2], 0
jmp 0x42095c
mov dword [esi], 0
mov dword [esi + 4], 0
mov ecx, dword [0x5052b0]
mov dword [esi + 8], ecx
jmp 0x42095c