Function at 0x41ea40
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xbc
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x14]
test ecx, ecx
sete al
test edx, edx
sete dl
or eax, edx
test al, 1
jne 0x41ea6b
test dword [ebp + 0xc], 0xffff8100
je 0x41ea85
call sub.msvcrt.dll__errno
mov dword [eax], 0x16
mov edx, 0xffffffff
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
test dword [ebp + 0xc], 0x400
je 0x41eb5a
mov eax, 0x7b
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.msvcrt.dll_strchr
test eax, eax
mov esi, eax
je 0x41eb5a
mov dword [ebp - 0x98], esp
mov edx, dword [ebp + 8]
mov dword [esp], edx
call sub.msvcrt.dll_strlen
add eax, 0x1d
and eax, 0xfffffff0
call fcn.004217a0
mov edi, dword [ebp + 8]
lea ecx, [esp + 0x1f]
mov ebx, esi
and ecx, 0xfffffff0
mov dword [ebp - 0x9c], ecx
sub ebx, edi
xor edi, edi
mov dword [esp + 8], ebx
mov eax, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x9c]
lea edx, [esi + 1]
mov dword [ebp - 0xb8], edx
add ebx, ecx
mov dword [ebp - 0x88], ebx
mov ebx, edx
movzx ecx, byte [esi + 1]
test edi, edi
jne 0x41eeef
cmp cl, 0x2c
setne al
xor edx, edx
cmp cl, 0x7d
setne dl
test eax, edx
je 0x41f4cd
test cl, cl
je 0x41f4cd
cmp cl, 0x7b
je 0x41f39f
inc ebx
movzx ecx, byte [ebx]
jmp 0x41eb12
test dword [ebp + 0xc], 0x810
je 0x41f732
mov esp, dword [ebp - 0x98]
mov eax, 0x2f
mov dword [esp + 4], eax
mov edx, dword [ebp + 8]
mov dword [esp], edx
call sub.msvcrt.dll_strrchr
mov dword [ebp - 0x7c], eax
test eax, eax
je 0x41eca4
mov edx, dword [ebp + 8]
cmp dword [ebp - 0x7c], edx
je 0x41f2b6
mov edi, dword [ebp - 0x7c]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x7c]
sub edi, eax
cmp byte [ecx], 0x3a
je 0x41ec4e
mov eax, dword [ebp + 8]
lea esi, [edi + 0x1f]
inc eax
cmp eax, ecx
jb 0x41ec44
and esi, 0xfffffff0
mov eax, esi
call fcn.004217a0
mov dword [esp + 8], edi
lea ebx, [esp + 0x1f]
mov edx, dword [ebp + 8]
and ebx, 0xfffffff0
mov esi, ebx
mov dword [esp + 4], edx
mov dword [esp], ebx
call sub.msvcrt.dll_memcpy
mov byte [edi + ebx], 0
inc dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x7c]
cmp byte [ecx], 0
jne 0x41ece5
movzx eax, byte [ebx + edi - 1]
cmp al, 0x3a
je 0x41ece5
cmp edi, 2
ja 0x41f2c9
cmp edi, 1
jbe 0x41ece5
mov eax, dword [ebp + 0x14]
mov dword [esp + 0xc], eax
mov edx, dword [ebp + 0x10]
mov dword [esp + 8], edx
mov eax, dword [ebp + 0xc]
mov dword [esp], ebx
or eax, 2
mov dword [esp + 4], eax
call fcn.0041ea40
test eax, eax
mov edx, eax
jne 0x41ea7b
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 0xc]
and dword [ebp + 0xc], 2
and eax, 0xfffffffd
mov esi, dword [ebp + 0xc]
or eax, esi
mov dword [ecx + 0xc], eax
jmp 0x41ea7b
cmp byte [ecx - 1], 0x3a
jne 0x41eba8
inc edi
lea esi, [edi + 0x1f]
mov eax, esi
and eax, 0xfffffff0
call fcn.004217a0
mov dword [esp + 8], edi
lea ebx, [esp + 0x1f]
mov eax, dword [ebp + 8]
and ebx, 0xfffffff0
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov byte [edi + ebx], 0
mov eax, dword [ebp + 0xc]
mov dword [esp], ebx
shr eax, 6
xor eax, 1
and eax, 1
mov dword [esp + 4], eax
call fcn.0041e350
test eax, eax
mov edx, 3
je 0x41eba8
jmp 0x41ea7b
mov eax, 0x3a
mov dword [esp + 4], eax
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
call sub.msvcrt.dll_strchr
mov dword [ebp - 0x7c], eax
test eax, eax
jne 0x41eb79
test dword [ebp + 0xc], 0x5000
je 0x41ecd8
mov ebx, dword [ebp + 8]
cmp byte [ebx], 0x7e
je 0x41f721
mov eax, dword [ebp + 8]
mov esi, 0x4294c0
xor edi, edi
mov dword [ebp - 0x7c], eax
test byte [ebp + 0xc], 0x20
jne 0x41ecfb
mov ebx, dword [ebp + 0x14]
mov dword [ebx], 0
mov dword [ebx + 4], 0
test dword [ebp + 0xc], 0x5000
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov dword [ebp - 0x80], eax
je 0x41ed15
cmp byte [esi], 0x7e
je 0x41f523
mov ecx, dword [ebp - 0x7c]
test ecx, ecx
je 0x41f143
mov eax, dword [ebp + 0xc]
mov dword [esp], esi
shr eax, 6
xor eax, 1
and eax, 1
mov dword [esp + 4], eax
call fcn.0041e350
test eax, eax
je 0x41f18b
lea eax, [ebp - 0x78]
mov dword [esp + 0xc], eax
mov edx, dword [ebp + 0x10]
mov dword [esp + 8], edx
mov eax, dword [ebp + 0xc]
mov dword [esp], esi
and eax, 0x51
or eax, 0x2004
mov dword [esp + 4], eax
call fcn.0041ea40
test eax, eax
mov edx, eax
jne 0x41ea7b
xor edi, edi
cmp eax, dword [ebp - 0x78]
jae 0x41ede4
mov ecx, dword [ebp + 0xc]
or ecx, 0x20
and ecx, 0xffffffee
mov dword [ebp - 0xa8], ecx
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x74]
mov esi, dword [ebx]
mov edx, dword [eax + edi*4]
mov dword [esp + 8], ebx
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0xa8]
mov dword [esp], ecx
mov eax, dword [ebp - 0x7c]
call fcn.0041e5a0
cmp eax, 3
mov ebx, eax
je 0x41edde
test eax, eax
jne 0x41f682
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
lea edx, [eax + esi*4]
mov eax, dword [ebp - 0x74]
sub ecx, esi
mov eax, dword [eax + edi*4]
mov dword [esp], ecx
call fcn.0041e420
test eax, eax
jne 0x41f66c
inc edi
cmp edi, dword [ebp - 0x78]
jb 0x41ed85
or dword [ebp + 0xc], 0x100
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x80]
cmp dword [eax], edx
jne 0x41f5dc
test byte [ebp + 0xc], 0x10
mov edx, 3
je 0x41ea7b
mov ecx, dword [ebp - 0x7c]
mov dword [esp], ecx
call sub.msvcrt.dll_strlen
inc eax
test byte [ebp + 0xc], 8
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0xac], eax
mov edx, dword [ebp - 0x78]
mov ecx, dword [ebx + 4]
je 0x41f641
mov eax, dword [ebp - 0x80]
mov esi, dword [ebx + 8]
add eax, esi
add eax, edx
test ecx, ecx
lea eax, [eax*4 + 4]
je 0x41f704
mov dword [esp + 4], eax
mov dword [esp], ecx
call sub.msvcrt.dll_realloc
mov edx, dword [ebp + 0x14]
test eax, eax
lea ecx, [ebp - 0x78]
mov dword [edx + 4], eax
je 0x41f714
test byte [ebp + 0xc], 8
je 0x41ee8c
mov ebx, dword [ebp + 0x14]
mov edx, dword [ebx]
mov ebx, dword [ebx + 8]
cmp edx, ebx
jae 0x41ee8c
lea ecx, [edx + 1]
mov edx, ecx
xor edi, edi
cmp edx, ebx
mov dword [eax + ecx*4 - 4], edi
lea ecx, [ecx + 1]
jb 0x41ee78
mov ebx, dword [ebp + 0x14]
mov dword [ebx], edx
xor edi, edi
cmp edi, dword [ebp - 0x78]
jae 0x41f5aa
mov eax, dword [ebp - 0x74]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0xb0], eax
mov dword [esp], eax
call sub.msvcrt.dll_strlen
test dword [ebp + 0xc], 0x200
mov dword [ebp - 0xb4], eax
je 0x41f4d4
lea eax, [ebp - 0x48]
mov dword [esp + 4], eax
mov edx, dword [ebp - 0xb0]
mov dword [esp], edx
mov ecx, dword [ebp + 0x14]
call dword [ecx + 0x20]
test eax, eax
jne 0x41eeec
movzx eax, word [ebp - 0x42]
and eax, 0xf000
cmp eax, 0x4000
je 0x41f3ad
inc edi
jmp 0x41ee8e
test cl, cl
jne 0x41ef0a
jmp 0x41ef1c
cmp cl, 0x7d
setne al
test edi, edi
setne dl
or eax, edx
test al, 1
je 0x41eb12
xor eax, eax
cmp cl, 0x7d
sete al
inc ebx
sub edi, eax
movzx ecx, byte [ebx]
test cl, cl
jne 0x41eef5
xor eax, eax
test eax, eax
mov edi, eax
je 0x41f5fd
mov dword [ebp - 0x90], eax
cmp byte [eax], 0x7d
je 0x41efbc
mov ecx, dword [ebp - 0x90]
xor esi, esi
lea ebx, [ecx + 1]
movzx ecx, byte [ecx + 1]
test esi, esi
jne 0x41ef79
cmp cl, 0x2c
setne al
xor edx, edx
cmp cl, 0x7d
setne dl
test eax, edx
je 0x41f443
test cl, cl
je 0x41f443
cmp cl, 0x7b
je 0x41f2e1
inc ebx
movzx ecx, byte [ebx]
test esi, esi
je 0x41ef4a
test cl, cl
jne 0x41ef91
jmp 0x41efa3
cmp cl, 0x7d
setne al
test esi, esi
setne dl
or eax, edx
test al, 1
je 0x41ef46
xor eax, eax
cmp cl, 0x7d
sete al
inc ebx
sub esi, eax
movzx ecx, byte [ebx]
test cl, cl
jne 0x41ef80
xor eax, eax
mov dword [ebp - 0x90], eax
test eax, eax
je 0x41f576
cmp byte [eax], 0x7d
jne 0x41ef37
inc dword [ebp - 0x90]
mov edx, dword [ebp - 0x90]
mov dword [esp], edx
call sub.msvcrt.dll_strlen
inc eax
test byte [ebp + 0xc], 0x20
mov dword [ebp - 0x94], eax
jne 0x41efed
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp - 0xb8]
mov ebx, dword [ebx]
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x84], ebx
lea esi, [esi]
lea edi, [edi]
mov edx, dword [ebp - 0x8c]
mov ebx, edi
sub ebx, edx
mov dword [esp + 8], ebx
mov edx, dword [ebp - 0x8c]
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x88]
mov dword [esp], ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x88]
add ebx, eax
mov eax, dword [ebp - 0x94]
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x90]
mov dword [esp], ebx
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0xc], ecx
mov ebx, dword [ebp + 0x10]
mov dword [esp + 8], ebx
mov eax, dword [ebp + 0xc]
and eax, 0xfffff7ef
or eax, 0x20
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x9c]
mov dword [esp], eax
call fcn.0041ea40
test eax, eax
mov ebx, eax
setne dl
xor eax, eax
cmp ebx, 3
setne al
test edx, eax
jne 0x41f4ee
cmp byte [edi], 0x7d
je 0x41f505
lea ecx, [edi + 1]
xor esi, esi
mov ebx, ecx
mov dword [ebp - 0x8c], ecx
movzx ecx, byte [edi + 1]
test esi, esi
jne 0x41f0f0
cmp cl, 0x2c
setne al
xor edx, edx
cmp cl, 0x7d
setne dl
test eax, edx
je 0x41f475
test cl, cl
je 0x41f475
cmp cl, 0x7b
je 0x41f467
inc ebx
movzx ecx, byte [ebx]
test esi, esi
je 0x41f0ba
lea esi, [esi]
test cl, cl
jne 0x41f107
jmp 0x41f119
cmp cl, 0x7d
setne al
test esi, esi
setne dl
or eax, edx
test al, 1
je 0x41f0b6
xor eax, eax
cmp cl, 0x7d
sete al
inc ebx
sub esi, eax
movzx ecx, byte [ebx]
test cl, cl
jne 0x41f0f6
xor eax, eax
test eax, eax
mov edi, eax
jne 0x41f010
mov dword [esp], str.next___NULL
mov eax, 0x1eb
mov dword [esp + 8], eax
mov eax, str..._.._.._make_3.81_glob_glob.c
mov dword [esp + 4], eax
call sub.msvcrt.dll__assert
test byte [ebp + 0xc], 0x10
jne 0x41f211
test dword [ebp + 0xc], 0x200
jne 0x41f300
mov dword [esp], esi
lea eax, [ebp - 0x48]
mov dword [esp + 4], eax
call sub.msvcrt.dll__stat
test eax, eax
jne 0x41f181
movzx eax, word [ebp - 0x42]
and eax, 0xf000
cmp eax, 0x4000
je 0x41f211
mov edx, 3
jmp 0x41ea7b
mov edx, dword [ebp + 0x14]
mov dword [esp + 8], edx
mov ecx, dword [ebp + 0x10]
mov edx, esi
mov dword [esp + 4], ecx
mov ebx, dword [ebp + 0xc]
mov dword [esp], ebx
mov eax, dword [ebp - 0x7c]
call fcn.0041e5a0
test eax, eax
mov edx, eax
jne 0x41ea7b
test edi, edi
jne 0x41f359
test byte [ebp + 0xc], 2
je 0x41f47c
mov ebx, dword [ebp - 0x80]
mov eax, dword [ebp + 0x14]
cmp ebx, dword [eax]
jae 0x41f47c
test dword [ebp + 0xc], 0x200
je 0x41f44a
lea edx, [ebp - 0x48]
mov dword [esp + 4], edx
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 4]
mov eax, dword [eax + ebx*4]
mov dword [esp], eax
call dword [ecx + 0x20]
test eax, eax
jne 0x41f20e
movzx eax, word [ebp - 0x42]
and eax, 0xf000
cmp eax, 0x4000
je 0x41f315
inc ebx
jmp 0x41f1c8
test byte [ebp + 0xc], 8
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
lea edx, [eax*4 + 8]
jne 0x41f2ef
test ecx, ecx
je 0x41f634
mov dword [esp + 4], edx
mov dword [esp], ecx
call sub.msvcrt.dll_realloc
mov edx, dword [ebp + 0x14]
test eax, eax
mov dword [edx + 4], eax
mov edx, 1
je 0x41ea7b
test byte [ebp + 0xc], 8
je 0x41f27a
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
mov ebx, dword [ecx + 8]
cmp edx, ebx
jae 0x41f27a
lea ecx, [edx + 1]
mov edx, ecx
xor edi, edi
cmp edx, ebx
mov dword [eax + ecx*4 - 4], edi
lea ecx, [ecx + 1]
jb 0x41f266
mov ebx, dword [ebp + 0x14]
mov dword [ebx], edx
mov dword [esp], esi
call sub.msvcrt.dll__strdup
mov edx, dword [ebp + 0x14]
test eax, eax
mov ecx, dword [edx]
mov edx, dword [edx + 4]
mov dword [edx + ecx*4], eax
je 0x41f65a
lea eax, [ecx + 1]
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x14]
mov dword [edx + eax*4], 0
mov dword [ecx], eax
mov dword [ecx + 0xc], ebx
xor edx, edx
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
inc edx
mov esi, 0x4294ef
mov edi, 1
mov dword [ebp - 0x7c], edx
jmp 0x41ece5
cmp byte [ebx + edi - 2], 0x3a
jne 0x41ebf7
cmp al, 0x2f
jne 0x41ebf7
jmp 0x41ece5
inc ebx
mov esi, 1
movzx ecx, byte [ebx]
jmp 0x41ef75
mov edx, dword [ebx + 8]
add eax, edx
lea edx, [eax*4 + 8]
jmp 0x41f22a
mov dword [esp], esi
lea eax, [ebp - 0x48]
mov dword [esp + 4], eax
mov edx, dword [ebp + 0x14]
call dword [edx + 0x20]
jmp 0x41f169
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 4]
mov esi, dword [eax + ebx*4]
mov dword [esp], esi
call sub.msvcrt.dll_strlen
test esi, esi
lea edi, [eax + 2]
jne 0x41f5ec
mov dword [esp], edi
call sub.msvcrt.dll_malloc
test eax, eax
mov edx, eax
je 0x41f711
mov word [eax + edi - 2], 0x2f
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 4]
mov dword [eax + ebx*4], edx
inc ebx
jmp 0x41f1c8
test byte [ebp + 0xc], 8
mov ecx, dword [ebp - 0x80]
je 0x41f36e
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 8]
cmp ecx, eax
jae 0x41f36e
mov ecx, eax
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebx + 4]
lea edx, [eax + ecx*4]
mov eax, dword [ebx]
sub eax, ecx
mov dword [esp], eax
mov eax, esi
call fcn.0041e420
test eax, eax
je 0x41f1bb
mov dword [esp], ebx
call fcn.0041e3c0
mov edx, 1
jmp 0x41ea7b
inc ebx
mov edi, 1
movzx ecx, byte [ebx]
jmp 0x41eb12
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0xb4]
mov esi, dword [edx]
mov ebx, dword [edx + 4]
mov edx, dword [ebp - 0xac]
lea eax, [ecx + edx + 1]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [ebx + esi*4], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x41f742
mov ebx, dword [ebp - 0xb4]
inc edi
mov dword [esp + 8], ebx
mov edx, dword [ebp - 0xb0]
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov eax, dword [eax + edx*4]
mov byte [ebx + eax], 0x2f
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov esi, dword [edx + ecx*4]
mov edx, dword [ebp - 0xac]
add eax, esi
inc eax
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
inc dword [ebx]
jmp 0x41ee8e
mov eax, ebx
jmp 0x41efa5
lea eax, [ebp - 0x48]
mov dword [esp + 4], eax
mov edx, dword [ebp + 0x14]
mov eax, dword [edx + 4]
mov eax, dword [eax + ebx*4]
mov dword [esp], eax
call sub.msvcrt.dll__stat
jmp 0x41f1f6
inc ebx
mov esi, 1
movzx ecx, byte [ebx]
jmp 0x41f0e5
mov eax, ebx
jmp 0x41f11b
test byte [ebp + 0xc], 4
jne 0x41f2aa
test byte [ebp + 0xc], 8
mov edx, dword [ebp - 0x80]
je 0x41f49b
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 8]
cmp eax, edx
jbe 0x41f49b
mov edx, eax
mov eax, 0x41e560
mov edi, 4
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebx]
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [ebx + 4]
lea eax, [eax + edx*4]
mov dword [esp], eax
call sub.msvcrt.dll_qsort
xor edx, edx
jmp 0x41f2ac
mov eax, ebx
jmp 0x41ef1e
lea ebx, [ebp - 0x48]
mov dword [esp + 4], ebx
mov eax, dword [ebp - 0xb0]
mov dword [esp], eax
call sub.msvcrt.dll__stat
jmp 0x41eed4
test byte [ebp + 0xc], 0x20
je 0x41f624
mov esp, dword [ebp - 0x98]
mov edx, ebx
jmp 0x41ea7b
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x84]
cmp dword [ebx], eax
je 0x41eb47
mov esp, dword [ebp - 0x98]
xor edx, edx
jmp 0x41f2ac
movzx eax, byte [esi + 1]
test al, al
sete dl
cmp al, 0x2f
sete al
or eax, edx
test al, 1
je 0x41ed15
mov dword [esp], str.HOME
call sub.msvcrt.dll_getenv
mov dword [ebp - 0xa0], eax
test eax, eax
je 0x41f556
cmp byte [eax], 0
jne 0x41f561
mov ebx, str.c:_users_default
mov dword [ebp - 0xa0], ebx
cmp byte [esi + 1], 0
jne 0x41f69f
mov esi, dword [ebp - 0xa0]
jmp 0x41ed15
mov eax, dword [ebp + 0x14]
mov dword [esp + 0xc], eax
mov edx, dword [ebp + 0x10]
mov dword [esp + 8], edx
and dword [ebp + 0xc], 0xfffffbff
mov ecx, dword [ebp + 0xc]
mov dword [esp + 4], ecx
mov ebx, dword [ebp + 8]
mov dword [esp], ebx
call fcn.0041ea40
mov esp, dword [ebp - 0x98]
mov edx, eax
jmp 0x41ea7b
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebx + 4]
mov dword [ebx + 0xc], ecx
mov eax, dword [ebx]
test edx, edx
mov dword [edx + eax*4], 0
lea eax, [eax*4 + 4]
jne 0x41f649
mov dword [esp], eax
call sub.msvcrt.dll_malloc
test eax, eax
je 0x41f5dc
mov ebx, dword [ebp + 0x14]
mov dword [ebx + 4], eax
lea eax, [ebp - 0x78]
mov dword [esp], eax
call fcn.0041e3c0
jmp 0x41f1bb
mov dword [esp + 4], edi
mov dword [esp], esi
call sub.msvcrt.dll_realloc
jmp 0x41f339
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0xc], ecx
mov ebx, dword [ebp + 0x10]
mov dword [esp + 8], ebx
and dword [ebp + 0xc], 0xfffffbff
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov edx, dword [ebp + 8]
mov dword [esp], edx
jmp 0x41f598
mov edx, dword [ebp + 0x14]
mov dword [esp], edx
call fcn.0041e3c0
jmp 0x41f4f8
mov dword [esp], edx
call sub.msvcrt.dll_malloc
jmp 0x41f23e
mov eax, dword [ebp - 0x80]
jmp 0x41ee35
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_realloc
jmp 0x41f5d2
mov dword [esp], edx
call sub.msvcrt.dll_free
mov edx, 1
jmp 0x41ea7b
lea ecx, [ebp - 0x78]
mov dword [esp], ecx
call fcn.0041e3c0
mov ebx, dword [ebp + 0x14]
mov dword [esp], ebx
jmp 0x41f390
lea eax, [ebp - 0x78]
mov dword [esp], eax
call fcn.0041e3c0
mov edx, dword [ebp + 0x14]
mov dword [esp], edx
call fcn.0041e3c0
mov edx, ebx
jmp 0x41ea7b
mov edx, dword [ebp - 0xa0]
mov dword [esp], edx
call sub.msvcrt.dll_strlen
mov dword [ebp - 0xa4], eax
lea eax, [eax + edi + 0x1e]
and eax, 0xfffffff0
call fcn.004217a0
mov ecx, dword [ebp - 0xa4]
lea ebx, [esp + 0x1f]
and ebx, 0xfffffff0
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0xa0]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0xa4]
lea eax, [esi + 1]
mov esi, ebx
mov dword [esp + 8], edi
add edx, ebx
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.msvcrt.dll_memcpy
jmp 0x41ed15
mov dword [esp], eax
call sub.msvcrt.dll_malloc
jmp 0x41ee52
mov ecx, dword [ebp + 0x14]
mov dword [esp], ecx
call fcn.0041e3c0
jmp 0x41f395
mov dword [esp], ebx
mov esi, ebx
call sub.msvcrt.dll_strlen
mov edi, eax
jmp 0x41ece5
mov esp, dword [ebp - 0x98]
mov edx, 3
jmp 0x41ea7b
lea eax, [ebp - 0x78]
mov dword [esp], eax
call fcn.0041e3c0
mov edx, dword [ebp + 0x14]
mov dword [esp], edx
call fcn.0041e3c0
jmp 0x41f395