Function at 0x4015b0
Capabilities:
Query environment variable
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb60
call fcn.004119b2
lea eax, [ebp + 0xc]
lea edx, [ebp + 8]
lea ecx, [esp + 0xb04]
push 1
push eax
push edx
call fcn.00411ee6
push str.PLEASE_submit_a_bug_report_to_https:__github.com_llvm_llvm_project_issues__and_include_the_crash_backtrace__preprocessed_source__and_associated_run_script._n
call fcn.00411b56
add esp, 4
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
lea eax, [esp + 0x704]
mov dword [esp + 0x6f8], eax
mov dword [esp + 0x6fc], 0
mov dword [esp + 0x700], 0x100
lea eax, [ebx*4]
xor ecx, ecx
cmp eax, 0x401
jb 0x40163f
lea ecx, [esp + 0x6f8]
push 4
push ebx
lea eax, [esp + 0x70c]
push eax
call fcn.00411b3e
mov ecx, dword [esp + 0x6fc]
mov dword [esp + 4], ecx
test ebx, ebx
je 0x40169e
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 4]
lea ecx, [edx + eax*4]
lea esi, [ebx - 1]
and esi, 0x3fffffff
cmp esi, 0xf
jb 0x40167f
mov eax, edx
mov dword [esp + 0x10], edx
mov eax, dword [esp + 4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 4]
sub eax, edi
cmp eax, 0x20
jae 0x401765
mov edx, edi
lea esi, [edi + ebx*4]
nop word cs:[eax + eax]
mov eax, dword [edx]
mov dword [ecx], eax
add edx, 4
add ecx, 4
cmp edx, esi
jne 0x401690
mov eax, dword [esp + 4]
add eax, ebx
mov dword [esp + 0x6fc], eax
call fcn.00411e68
mov esi, 1
test eax, eax
jne 0x404920
mov edi, dword [ebp + 0x10]
call sub.libLLVM_17.dll_LLVMInitializeARMTargetInfo
call sub.libLLVM_17.dll_LLVMInitializeAArch64TargetInfo
call sub.libLLVM_17.dll_LLVMInitializeX86TargetInfo
call sub.libLLVM_17.dll_LLVMInitializeARMTarget
call sub.libLLVM_17.dll_LLVMInitializeAArch64Target
call sub.libLLVM_17.dll_LLVMInitializeX86Target
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
lea eax, [esp + 0x1bc]
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x1b8], 4
lea eax, [esp + 0x1d8]
mov dword [esp + 0x1cc], eax
movaps xmm0, xmmword [0x413050]
movups xmmword [esp + 0x1d0], xmm0
lea esi, [esp + 0x1a8]
mov dword [esp + 0x120], esi
lea eax, [edi + 4]
cmp byte [edi + 8], 0
cmove eax, edi
mov edi, dword [eax]
mov dword [esp + 0x180], edi
test edi, edi
je 0x4017c0
push edi
call sub.msvcrt.dll_strlen
add esp, 4
jmp 0x4017c2
mov dword [esp + 8], ebx
inc esi
lea eax, [edx*4]
mov dword [esp + 0x14], esi
mov ebx, esi
and ebx, 0xfffffff8
lea ecx, [ecx + ebx*4]
lea edx, [edi + ebx*4]
mov esi, dword [esp + 0x10]
add eax, esi
add eax, 0x10
xor esi, esi
nop dword [eax + eax]
movdqu xmm0, xmmword [edi + esi*4]
movdqu xmm1, xmmword [edi + esi*4 + 0x10]
movdqu xmmword [eax + esi*4 - 0x10], xmm0
movdqu xmmword [eax + esi*4], xmm1
add esi, 8
cmp ebx, esi
jne 0x401790
cmp dword [esp + 0x14], ebx
mov ebx, dword [esp + 8]
je 0x40169e
jmp 0x401681
xor eax, eax
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x6f8]
mov ecx, dword [esp + 0x6fc]
dec ecx
add eax, 4
mov dword [esp + 0x17c], ecx
mov dword [esp + 0x178], eax
sub esp, 0x10
movsd xmm0, qword [esp + 0x188]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x190]
movsd qword [esp], xmm0
call fcn.004119f4
add esp, 0x10
mov dword [esp + 0x18c], edx
mov dword [esp + 0x188], eax
sub esp, 8
movq xmm0, qword [esp + 0x190]
movq qword [esp], xmm0
call fcn.00411a1e
add esp, 8
mov ebx, eax
movzx eax, al
lea ecx, [esp + 0x6f8]
lea edx, [esp + 0x1e0]
push 0
push esi
push eax
push ecx
push edx
call fcn.00411a00
add esp, 0x14
cmp dword [esp + 0x1e0], 0
je 0x4018be
call fcn.00411e92
mov esi, eax
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0x11c], eax
mov dword [esp + 0x1e0], 0
lea eax, [esp + 0x11c]
lea ecx, [esp + 0x3f8]
push eax
push ecx
call fcn.00411ef2
add esp, 8
movzx eax, byte [esp + 0x3f8]
test al, 1
je 0x4019b5
mov edx, dword [esp + 0x400]
mov eax, dword [esp + 0x3fc]
jmp 0x4019be
mov byte [esp + 0x10], bl
mov ecx, dword [esp + 0x6fc]
mov al, 1
mov dword [esp + 0x18], eax
mov dword [esp + 4], ecx
cmp ecx, 2
mov dword [esp + 0x5c], edi
jb 0x401a33
mov eax, dword [esp + 0x6f8]
mov esi, dword [eax + 4]
test esi, esi
je 0x401908
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 4
jb 0x401908
cmp dword [esi], 0x3163632d
je 0x404035
cmp dword [esp + 4], 2
movzx ecx, byte [esp + 0x10]
jl 0x401a38
mov al, 1
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x6f8]
mov ebx, 1
jmp 0x401960
push 0x16
push str._no_canonical_prefixes
push esi
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
mov ecx, dword [esp + 0x18]
movzx ecx, cl
cmove ecx, eax
mov dword [esp + 0x18], ecx
movzx ecx, byte [esp + 0x10]
inc ebx
cmp dword [esp + 4], ebx
je 0x401a38
mov esi, dword [edi + ebx*4]
test esi, esi
je 0x401955
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0x16
je 0x401930
cmp eax, 0x13
jne 0x401950
movdqu xmm0, xmmword [esi]
pcmpeqb xmm0, xmmword [0x413070]
movdqu xmm1, xmmword [esi + 3]
pcmpeqb xmm1, xmmword [str.nonical_prefixes_canonical_prefio_integrated_cc1_fno_integrated_only_direct_system]
pand xmm1, xmm0
pmovmskb eax, xmm1
cmp eax, 0xffff
mov eax, dword [esp + 0x18]
movzx eax, al
mov ecx, 1
cmove eax, ecx
mov dword [esp + 0x18], eax
jmp 0x401950
shr eax, 1
lea edx, [esp + 0x3f9]
mov ecx, esi
push eax
push edx
call fcn.00411ac6
mov ecx, dword [eax + 0x10]
cmp ecx, dword [eax + 0xc]
jae 0x4019e4
lea edx, [ecx + 1]
mov dword [eax + 0x10], edx
mov byte [ecx], 0xa
test byte [esp + 0x3f8], 1
jne 0x4019f7
jmp 0x401a06
mov ecx, eax
push 0xa
call fcn.00411acc
test byte [esp + 0x3f8], 1
je 0x401a06
push dword [esp + 0x400]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov ecx, dword [esp + 0x11c]
test ecx, ecx
je 0x401a16
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x1e0]
test ecx, ecx
je 0x401a26
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp + 4], 1
jmp 0x40485f
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x401d58
mov dword [esp + 0x170], 0x4131bd
mov dword [esp + 0x174], 2
sub esp, 0xc
movsd xmm0, qword [esp + 0x17c]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x1ec]
mov dword [esp], eax
call fcn.00411e74
add esp, 0xc
cmp byte [esp + 0x1ec], 0
je 0x401b96
lea esi, [esp + 0x404]
mov dword [esp + 0x3f8], esi
mov dword [esp + 0x3fc], 0
mov dword [esp + 0x400], 8
movzx eax, byte [esp + 0x1e0]
mov ecx, eax
shr ecx, 1
test al, 1
lea eax, [esp + 0x1e1]
cmovne eax, dword [esp + 0x1e8]
mov dword [esp + 0x70], eax
cmovne ecx, dword [esp + 0x1e4]
mov dword [esp + 0x74], ecx
sub esp, 0x14
movsd xmm0, qword [esp + 0x84]
movsd qword [esp], xmm0
lea eax, [esp + 0x40c]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x134]
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0
call fcn.00411d7e
add esp, 0x14
mov edi, dword [esp + 0x3f8]
mov ebx, dword [esp + 0x3fc]
test ebx, ebx
je 0x401b64
shl ebx, 2
xor esi, esi
jmp 0x401b37
add esi, 4
cmp ebx, esi
je 0x401b4d
push 0x23
push dword [edi + esi]
call sub.msvcrt.dll_strchr
add esp, 8
test eax, eax
je 0x401b30
mov byte [eax], 0x3d
jmp 0x401b30
mov edi, dword [esp + 0x3f8]
mov eax, dword [esp + 0x3fc]
lea esi, [esp + 0x404]
jmp 0x401b66
xor eax, eax
mov edx, dword [esp + 0x6f8]
add edx, 4
lea eax, [edi + eax*4]
lea ecx, [esp + 0x6f8]
push eax
push edi
push edx
call fcn.00405170
mov eax, dword [esp + 0x3f8]
cmp eax, esi
je 0x401b96
push eax
call sub.msvcrt.dll_free
add esp, 4
mov dword [esp + 0x168], str._CL_
mov dword [esp + 0x16c], 4
sub esp, 0xc
movq xmm0, qword [esp + 0x174]
movq qword [esp + 4], xmm0
lea eax, [esp + 0x7c]
mov dword [esp], eax
call fcn.00411e74
add esp, 0xc
cmp byte [esp + 0x7c], 0
je 0x401d35
lea eax, [esp + 0x404]
mov dword [esp + 0x3f8], eax
mov dword [esp + 0x3fc], 0
mov dword [esp + 0x400], 8
movzx eax, byte [esp + 0x70]
mov ecx, eax
shr ecx, 1
test al, 1
lea eax, [esp + 0x71]
cmovne eax, dword [esp + 0x78]
mov dword [esp + 0x30], eax
cmovne ecx, dword [esp + 0x74]
mov dword [esp + 0x34], ecx
sub esp, 0x14
movq xmm0, qword [esp + 0x44]
movq qword [esp], xmm0
lea eax, [esp + 0x40c]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x134]
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0
call fcn.00411d7e
add esp, 0x14
mov edi, dword [esp + 0x3f8]
mov ebx, dword [esp + 0x3fc]
test ebx, ebx
je 0x401c9d
shl ebx, 2
xor esi, esi
jmp 0x401c77
add esi, 4
cmp ebx, esi
je 0x401c8d
push 0x23
push dword [edi + esi]
call sub.msvcrt.dll_strchr
add esp, 8
test eax, eax
je 0x401c70
mov byte [eax], 0x3d
jmp 0x401c70
mov edi, dword [esp + 0x3f8]
mov ebx, dword [esp + 0x3fc]
jmp 0x401c9f
xor ebx, ebx
mov eax, dword [esp + 0x6fc]
lea edx, [eax + ebx]
cmp dword [esp + 0x700], edx
jae 0x401cd0
lea ecx, [esp + 0x6f8]
push 4
push edx
lea eax, [esp + 0x70c]
push eax
call fcn.00411b3e
mov eax, dword [esp + 0x6fc]
test ebx, ebx
je 0x401cf7
lea ecx, [ebx*4]
shl eax, 2
add eax, dword [esp + 0x6f8]
push ecx
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x6fc]
add eax, ebx
mov dword [esp + 0x6fc], eax
mov eax, dword [esp + 0x3f8]
lea ecx, [esp + 0x404]
cmp eax, ecx
je 0x401d1b
push eax
call sub.msvcrt.dll_free
add esp, 4
cmp byte [esp + 0x7c], 0
je 0x401d35
test byte [esp + 0x70], 1
je 0x401d35
push dword [esp + 0x78]
call sub.libc.dll_operator_delete_void_
add esp, 4
cmp byte [esp + 0x1ec], 0
je 0x401d58
test byte [esp + 0x1e0], 1
je 0x401d58
push dword [esp + 0x1e8]
call sub.libc.dll_operator_delete_void_
add esp, 4
lea eax, [esp + 0x68]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x64], eax
push str.CCC_OVERRIDE_OPTIONS
call sub.msvcrt.dll_getenv
add esp, 4
test eax, eax
je 0x401e47
mov ebx, eax
call fcn.00411e92
cmp byte [ebx], 0x23
jne 0x401d97
inc ebx
call fcn.00411ece
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
sub ecx, edx
cmp ecx, 0x19
mov dword [esp + 8], eax
ja 0x401dbd
mov ecx, eax
push 0x1a
push str._CCC_OVERRIDE_OPTIONS:
call fcn.00411ac6
mov esi, eax
mov edi, dword [eax + 0x10]
jmp 0x401ddf
movups xmm0, xmmword [0x4132d6]
movups xmmword [edx + 0xa], xmm0
movdqu xmm0, xmmword [str._CCC_OVERRIDE_OPTIONS:]
movdqu xmmword [edx], xmm0
mov esi, eax
mov edi, dword [eax + 0x10]
add edi, 0x1a
mov dword [eax + 0x10], edi
push ebx
call sub.msvcrt.dll_strlen
add esp, 4
mov ecx, dword [esi + 0xc]
sub ecx, edi
cmp eax, ecx
jbe 0x401e01
mov ecx, esi
push eax
push ebx
call fcn.00411ac6
mov esi, eax
mov edi, dword [eax + 0x10]
jmp 0x401e1e
test eax, eax
je 0x401e1e
push eax
push ebx
push edi
mov dword [esp + 0x10], eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edi, dword [esi + 0x10]
add edi, dword [esp + 4]
mov dword [esi + 0x10], edi
cmp dword [esi + 0xc], edi
je 0x401e34
mov byte [edi], 0xa
inc dword [esi + 0x10]
cmp byte [ebx], 0
jne 0x401eb1
jmp 0x401e47
mov ecx, esi
push 1
push 0x4132e7
call fcn.00411ac6
cmp byte [ebx], 0
jne 0x401eb1
mov eax, dword [esp + 0x18]
and al, 1
mov dword [esp + 0x18], eax
movzx eax, al
lea ecx, [esp + 0x100]
push eax
mov eax, dword [ebp + 0x10]
push dword [eax]
push ecx
call fcn.00401350
add esp, 0xc
mov eax, dword [esp + 0x6f8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6fc]
xor ebx, ebx
test eax, eax
mov dword [esp + 8], eax
je 0x4031ef
lea edi, [eax*4]
mov dword [esp + 0x10], 0
jmp 0x403197
mov edi, dword [esp + 0x1c]
cmp byte [edi], 1
sbb edi, 0xffffffff
cmp byte [edi], 0
mov ebx, edi
je 0x401e47
push 0x20
push ebx
call sub.msvcrt.dll_strchr
add esp, 8
mov edi, eax
test eax, eax
je 0x401ed0
mov edx, edi
sub edx, ebx
jne 0x401ee3
jmp 0x401ea4
push ebx
call sub.msvcrt.dll_strlen
add esp, 4
mov edi, eax
add edi, ebx
mov edx, edi
sub edx, ebx
je 0x401ea4
cmp edx, 0xfffffff0
jae 0x404cb7
cmp edx, 0xa
mov dword [esp + 4], edx
ja 0x401f10
mov eax, edx
add al, dl
mov byte [esp + 0x30], al
lea eax, [esp + 0x31]
cmp edx, 0x20
mov dword [esp + 0x1c], edi
jae 0x401f3d
jmp 0x401f90
mov esi, edx
or esi, 0xf
lea eax, [esi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
mov edx, dword [esp + 8]
add esp, 4
mov dword [esp + 0x38], eax
add esi, 2
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edx
cmp edx, 0x20
mov dword [esp + 0x1c], edi
jb 0x401f90
mov ecx, eax
sub ecx, ebx
cmp ecx, 0x20
jb 0x401f90
mov esi, edx
and esi, 0xffffffe0
lea edx, [ebx + esi]
lea ecx, [eax + esi]
xor edi, edi
nop word cs:[eax + eax]
movdqu xmm0, xmmword [ebx + edi]
movdqu xmm1, xmmword [ebx + edi + 0x10]
movdqu xmmword [eax + edi], xmm0
movdqu xmmword [eax + edi + 0x10], xmm1
add edi, 0x20
cmp esi, edi
jne 0x401f60
cmp dword [esp + 4], esi
mov edi, dword [esp + 0x1c]
je 0x402000
jmp 0x401f94
mov edx, ebx
mov ecx, eax
mov esi, edi
sub esi, edx
mov eax, edx
and esi, 7
je 0x401faa
nop
movzx ebx, byte [eax]
mov byte [ecx], bl
inc eax
inc ecx
dec esi
jne 0x401fa0
not edx
add edx, edi
cmp edx, 7
jb 0x402000
nop word cs:[eax + eax]
movzx edx, byte [eax]
mov byte [ecx], dl
movzx edx, byte [eax + 1]
mov byte [ecx + 1], dl
movzx edx, byte [eax + 2]
mov byte [ecx + 2], dl
movzx edx, byte [eax + 3]
mov byte [ecx + 3], dl
movzx edx, byte [eax + 4]
mov byte [ecx + 4], dl
movzx edx, byte [eax + 5]
mov byte [ecx + 5], dl
movzx edx, byte [eax + 6]
mov byte [ecx + 6], dl
movzx edx, byte [eax + 7]
mov byte [ecx + 7], dl
add eax, 8
add ecx, 8
cmp eax, edi
jne 0x401fc0
mov byte [ecx], 0
movzx eax, byte [esp + 0x30]
mov ecx, dword [esp + 0x38]
test al, 1
je 0x402020
mov ebx, dword [esp + 0x34]
mov edx, ecx
jmp 0x402028
mov ebx, eax
shr ebx, 1
lea edx, [esp + 0x31]
mov dword [esp + 0xc], edx
movzx edx, byte [edx]
lea esi, [edx - 0x4f]
cmp esi, 0x29
mov dword [esp + 0x14], ebx
ja case.default.0x40203f
jmp dword [esi*4 + 0x413570]
test ebx, ebx
setne al
cmp dword [esp + 0x6fc], 2
mov edi, dword [esp + 8]
jb 0x402c90
xor ecx, ecx
mov cl, al
mov eax, dword [esp + 0xc]
add eax, ecx
mov dword [esp + 0x60], eax
mov eax, ebx
mov dword [esp + 0x2c], ecx
sub eax, ecx
mov dword [esp + 0x10], eax
mov esi, 1
jmp 0x4020a7
push dword [esp + 0x10]
push esi
push dword [esp + 0x68]
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x4020de
mov esi, dword [esp + 4]
inc esi
cmp esi, dword [esp + 0x6fc]
jae 0x402c90
mov eax, dword [esp + 0x6f8]
mov dword [esp + 4], esi
mov esi, dword [eax + esi*4]
test esi, esi
je 0x4020d0
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp dword [esp + 0x10], eax
jne 0x402095
jmp 0x4020d8
xor eax, eax
cmp dword [esp + 0x10], eax
jne 0x402095
cmp ebx, dword [esp + 0x2c]
jne 0x402080
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 0x10]
sub ecx, eax
cmp ecx, 0x15
ja 0x4020fd
mov ecx, edi
push 0x16
push str._Deleting_argument
call fcn.00411ac6
mov ebx, eax
jmp 0x40211c
movsd xmm0, qword [0x41333d]
movsd qword [eax + 0xe], xmm0
movdqu xmm0, xmmword [str._Deleting_argument]
movdqu xmmword [eax], xmm0
add dword [edi + 0x10], 0x16
mov ebx, edi
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x6f8]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x402170
push esi
call sub.msvcrt.dll_strlen
add esp, 4
mov edi, eax
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp edi, ecx
jbe 0x402152
mov ecx, ebx
push edi
push esi
call fcn.00411ac6
mov ebx, eax
jmp 0x402170
test edi, edi
je 0x402170
push edi
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add dword [ebx + 0x10], edi
nop word cs:[eax + eax]
mov eax, dword [ebx + 0x10]
cmp eax, dword [ebx + 0xc]
mov esi, dword [esp + 4]
jae 0x402187
lea ecx, [eax + 1]
mov dword [ebx + 0x10], ecx
mov byte [eax], 0xa
jmp 0x402190
mov ecx, ebx
push 0xa
call fcn.00411acc
mov edx, dword [esp + 0x6f8]
mov ecx, dword [esp + 0x6fc]
lea eax, [edx + esi*4]
add eax, 4
mov ebx, esi
lea esi, [edx + ecx*4]
sub esi, eax
mov edi, dword [esp + 0x14]
je 0x4021c6
lea ecx, [edx + ebx*4]
push esi
push eax
push ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ecx, dword [esp + 0x6fc]
dec ecx
mov dword [esp + 0x6fc], ecx
mov eax, dword [esp + 0xc]
cmp byte [eax], 0x58
jne 0x402241
mov eax, dword [esp + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub edx, eax
mov esi, dword [esp + 4]
cmp esi, ecx
jae 0x402250
cmp edx, 0x15
ja 0x40226e
mov edi, dword [esp + 8]
mov ecx, edi
push 0x16
push str._Deleting_argument
call fcn.00411ac6
mov ebx, eax
mov eax, dword [esp + 0x6f8]
mov esi, dword [eax + esi*4]
test esi, esi
je 0x4022a3
push esi
call sub.msvcrt.dll_strlen
add esp, 4
mov edi, eax
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp edi, ecx
jbe 0x4022e9
mov ecx, ebx
push edi
push esi
call fcn.00411ac6
mov ebx, eax
jmp 0x4022fb
mov esi, dword [esp + 4]
mov ebx, edi
mov edi, dword [esp + 8]
jmp 0x40209a
mov ebx, edi
cmp edx, 0x28
ja 0x4022ba
mov edi, dword [esp + 8]
mov ecx, edi
push 0x29
push str._Invalid_X_edit__end_of_command_line__n
call fcn.00411ac6
jmp 0x40209a
movsd xmm0, qword [0x41333d]
movsd qword [eax + 0xe], xmm0
movdqu xmm0, xmmword [str._Deleting_argument]
movdqu xmmword [eax], xmm0
mov edi, dword [esp + 8]
add dword [edi + 0x10], 0x16
mov ebx, edi
mov eax, dword [esp + 0x6f8]
mov esi, dword [eax + esi*4]
test esi, esi
jne 0x402216
mov eax, dword [ebx + 0x10]
cmp eax, dword [ebx + 0xc]
mov esi, dword [esp + 4]
jae 0x40230b
lea ecx, [eax + 1]
mov dword [ebx + 0x10], ecx
mov byte [eax], 0xa
jmp 0x402314
movups xmm0, xmmword [0x41335f]
movups xmmword [eax + 0x19], xmm0
movups xmm0, xmmword [0x413356]
movups xmmword [eax + 0x10], xmm0
movdqu xmm0, xmmword [str._Invalid_X_edit__end_of_command_line__n]
movdqu xmmword [eax], xmm0
mov edi, dword [esp + 8]
add dword [edi + 0x10], 0x29
jmp 0x40209a
test edi, edi
je 0x4022fb
push edi
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add dword [ebx + 0x10], edi
mov edi, dword [esp + 8]
mov eax, dword [ebx + 0x10]
cmp eax, dword [ebx + 0xc]
mov esi, dword [esp + 4]
jb 0x4022af
mov ecx, ebx
push 0xa
call fcn.00411acc
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0x6fc]
lea ecx, [edx + esi*4]
add ecx, 4
lea esi, [edx + eax*4]
sub esi, ecx
mov ebx, dword [esp + 0x14]
je 0x40234c
mov eax, dword [esp + 4]
lea eax, [edx + eax*4]
push esi
push ecx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x6fc]
dec eax
mov dword [esp + 0x6fc], eax
mov esi, dword [esp + 4]
jmp 0x40209a
cmp edx, 0x2b
jne case.0x40203f.80
xor ecx, ecx
test ebx, ebx
setne cl
sub ebx, ecx
cmp ebx, 0xfffffff0
jae 0x404cc0
cmp ebx, 0xb
jae 0x402a44
mov eax, ebx
add al, bl
mov byte [esp + 0x3f8], al
lea esi, [esp + 0x3f9]
cmp dword [esp + 0x14], ecx
jne 0x402a73
jmp 0x402a84
mov eax, dword [esp + 0x6fc]
cmp eax, 2
mov ebx, dword [esp + 8]
jb 0x4026a6
mov esi, 1
jmp 0x4023c9
inc esi
cmp esi, eax
jae 0x4026a6
mov ecx, dword [esp + 0x6f8]
mov edx, dword [ecx + esi*4]
test edx, edx
je 0x4023c1
cmp byte [edx], 0x2d
jne 0x4023c0
cmp byte [edx + 1], 0x4f
jne 0x4023c0
movzx ecx, byte [edx + 2]
test ecx, ecx
je 0x402402
cmp byte [edx + 3], 0
jne 0x4023c0
cmp ecx, 0x73
je 0x402402
cmp ecx, 0x7a
je 0x402402
add cl, 0xd0
cmp cl, 9
ja 0x4023c0
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp ecx, 0x15
ja 0x40242f
mov ecx, ebx
push 0x16
push str._Deleting_argument
call fcn.00411ac6
mov ebx, eax
mov eax, dword [esp + 0x6f8]
mov edi, dword [eax + esi*4]
test edi, edi
jne 0x40245a
jmp 0x402490
movsd xmm0, qword [0x41333d]
movsd qword [eax + 0xe], xmm0
movdqu xmm0, xmmword [str._Deleting_argument]
movdqu xmmword [eax], xmm0
add dword [ebx + 0x10], 0x16
mov eax, dword [esp + 0x6f8]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x402490
push edi
call sub.msvcrt.dll_strlen
add esp, 4
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
sub ecx, edx
cmp eax, ecx
jbe 0x40247c
mov ecx, ebx
push eax
push edi
call fcn.00411ac6
mov ebx, eax
jmp 0x402490
test eax, eax
je 0x402490
push eax
push edi
push edx
mov edi, eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add dword [ebx + 0x10], edi
mov eax, dword [ebx + 0x10]
cmp eax, dword [ebx + 0xc]
jae 0x4024a3
lea ecx, [eax + 1]
mov dword [ebx + 0x10], ecx
mov byte [eax], 0xa
jmp 0x4024ac
mov ecx, ebx
push 0xa
call fcn.00411acc
mov edx, dword [esp + 0x6f8]
mov eax, dword [esp + 0x6fc]
lea ecx, [edx + esi*4]
add ecx, 4
lea edi, [edx + eax*4]
sub edi, ecx
je 0x4024dc
lea eax, [edx + esi*4]
push edi
push ecx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x6fc]
dec eax
mov dword [esp + 0x6fc], eax
mov ebx, dword [esp + 8]
jmp 0x4023c1
xor ecx, ecx
test ebx, ebx
setne cl
sub ebx, ecx
cmp ebx, 0xfffffff0
jae 0x404cc0
cmp ebx, 0xb
jae 0x40279f
mov eax, ebx
add al, bl
mov byte [esp + 0x3f8], al
lea esi, [esp + 0x3f9]
cmp dword [esp + 0x14], ecx
jne 0x4027ce
jmp 0x4027df
inc ecx
test al, 1
lea eax, [esp + 0x32]
cmove ecx, eax
cmp byte [ecx], 0x2f
jne case.0x40203f.80
test ebx, ebx
je case.0x40203f.80
mov eax, dword [esp + 0xc]
cmp byte [eax + ebx - 1], 0x2f
jne case.0x40203f.80
lea eax, [ebx - 1]
cmp ebx, 2
mov edi, 2
cmovb edi, ebx
cmp edi, eax
mov ecx, 2
cmova eax, ecx
cmp eax, ebx
cmovae eax, ebx
sub eax, edi
je case.0x40203f.80
mov ecx, dword [esp + 0xc]
lea esi, [ecx + edi]
push eax
push 0x2f
push esi
call sub.msvcrt.dll_memchr
add esp, 0xc
test eax, eax
je case.0x40203f.80
sub eax, esi
cmp eax, 0xffffffff
je case.0x40203f.80
sub ebx, edi
mov dword [esp + 0x1e0], esi
mov dword [esp + 0x1e4], ebx
mov byte [esp + 0x70], 0x2f
mov eax, 1
mov dword [esp + 0x3fc], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x3f8], eax
sub esp, 0xc
movsd xmm0, qword [esp + 0x404]
movsd qword [esp], xmm0
mov dword [esp + 8], 0
lea ecx, [esp + 0x1ec]
call fcn.00411fb2
cmp eax, 0xffffffff
je 0x402cc3
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1e4]
cmp eax, ecx
cmovb ecx, eax
mov dword [esp + 0xc], ecx
jmp 0x402cd9
mov ebx, dword [esp + 8]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp ecx, 0x16
ja 0x40263a
mov ecx, ebx
push 0x17
push str._Unrecognized_edit:
call fcn.00411ac6
mov ebx, eax
mov eax, dword [eax + 0x10]
jmp 0x40265c
movsd xmm0, qword [0x41337f]
movsd qword [eax + 0xf], xmm0
movdqu xmm0, xmmword [str._Unrecognized_edit:]
movdqu xmmword [eax], xmm0
mov eax, dword [ebx + 0x10]
add eax, 0x17
mov dword [ebx + 0x10], eax
mov ecx, dword [ebx + 0xc]
sub ecx, eax
mov esi, dword [esp + 0x14]
cmp ecx, esi
jae 0x40267c
mov ecx, ebx
push esi
push dword [esp + 0x10]
call fcn.00411ac6
mov ebx, eax
mov eax, dword [eax + 0x10]
jmp 0x402696
test esi, esi
je 0x402696
push esi
push dword [esp + 0x10]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, dword [ebx + 0x10]
mov dword [ebx + 0x10], esi
mov eax, esi
cmp dword [ebx + 0xc], eax
je 0x4026c8
mov byte [eax], 0xa
inc dword [ebx + 0x10]
jmp 0x402c90
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp ecx, 0x13
ja 0x4026db
mov ecx, ebx
push 0x14
push str._Adding_argument
call fcn.00411ac6
mov ebx, eax
mov eax, dword [eax + 0x10]
jmp 0x4026f7
mov ecx, ebx
push 1
push 0x4132e7
call fcn.00411ac6
jmp 0x402c90
movdqu xmm0, xmmword [str._Adding_argument]
movdqu xmmword [eax], xmm0
mov dword [eax + 0x10], 0x20746e65
mov eax, dword [ebx + 0x10]
add eax, 0x14
mov dword [ebx + 0x10], eax
mov ecx, dword [ebx + 0xc]
sub ecx, eax
mov esi, dword [esp + 0x14]
cmp ecx, esi
jae 0x402730
mov ecx, ebx
push esi
mov esi, dword [esp + 0x10]
push esi
call fcn.00411ac6
mov ebx, eax
mov eax, dword [eax + 0x10]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
cmp ecx, 7
ja 0x40275b
mov ecx, ebx
push 8
push str._at_end_n
call fcn.00411ac6
jmp 0x40276e
test esi, esi
je 0x402cac
push esi
mov edi, dword [esp + 0x10]
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebx + 0x10]
add eax, esi
mov esi, edi
mov dword [ebx + 0x10], eax
mov ecx, dword [ebx + 0xc]
sub ecx, eax
cmp ecx, 7
jbe 0x402720
mov ecx, 0x20746120
mov dword [eax], ecx
mov ecx, 0xa646e65
mov dword [eax + 4], ecx
add dword [ebx + 0x10], 8
mov ebx, dword [esp + 0x14]
cmp ebx, 0xfffffff0
jae 0x404ccc
cmp ebx, 0xb
jae 0x402852
mov eax, ebx
add al, bl
mov byte [esp + 0x70], al
mov edi, ebx
lea ebx, [esp + 0x71]
test edi, edi
jne 0x40287a
jmp 0x402885
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
push eax
mov esi, ecx
call sub.libc.dll_operator_new_unsigned_int_
mov ecx, esi
add esp, 4
mov esi, eax
mov dword [esp + 0x400], eax
add edi, 2
mov dword [esp + 0x3f8], edi
mov dword [esp + 0x3fc], ebx
mov eax, dword [esp + 0xc]
add eax, ecx
push ebx
push eax
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esi + ebx], 0
lea ecx, [esp + 0x64]
lea eax, [esp + 0x3f8]
push eax
push eax
call fcn.00405de0
mov edi, eax
movzx ebx, byte [eax + 0x10]
mov esi, dword [eax + 0x18]
test byte [esp + 0x3f8], 1
je 0x402817
push dword [esp + 0x400]
call sub.libc.dll_operator_delete_void_
add esp, 4
add edi, 0x11
test bl, 1
cmove esi, edi
mov ebx, dword [esp + 8]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp ecx, 0x13
ja 0x4028f3
mov ecx, ebx
push 0x14
push str._Adding_argument
call fcn.00411ac6
mov ebx, eax
test esi, esi
jne 0x402912
jmp 0x402b4b
mov esi, ebx
or esi, 0xf
lea eax, [esi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov edi, ebx
mov ebx, eax
mov dword [esp + 0x78], eax
add esi, 2
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x74], edi
push edi
push esi
push ebx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov byte [ebx + edi], 0
test byte [esp + 0x70], 1
lea eax, [esp + 0x71]
je 0x402898
mov eax, dword [esp + 0x78]
mov dword [esp + 0x3f8], eax
lea ecx, [esp + 0x70]
push 0x2d
push eax
call fcn.00411fe2
movq xmm0, qword [esp + 0x70]
movq qword [esp + 0x1e0], xmm0
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
movzx ebx, byte [esp + 0x1e0]
test bl, 1
je 0x40293d
mov ebx, dword [esp + 0x1e4]
jmp 0x402946
movdqu xmm0, xmmword [str._Adding_argument]
movdqu xmmword [eax], xmm0
mov dword [eax + 0x10], 0x20746e65
add dword [ebx + 0x10], 0x14
test esi, esi
je 0x402b4b
push esi
call sub.msvcrt.dll_strlen
add esp, 4
mov edi, eax
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp edi, ecx
jbe 0x402b39
mov ecx, ebx
push edi
push esi
call fcn.00411ac6
mov ebx, eax
jmp 0x402b4b
shr ebx, 1
lea ecx, [esp + 0x1e1]
cmp ebx, 0xfffffff0
jae 0x404cc0
cmp ebx, 0xb
jae 0x40296c
mov eax, ebx
add al, bl
mov byte [esp + 0x3f8], al
lea esi, [esp + 0x3f9]
test ebx, ebx
jne 0x40299b
jmp 0x4029a6
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
push eax
mov esi, ecx
call sub.libc.dll_operator_new_unsigned_int_
mov ecx, esi
add esp, 4
mov esi, eax
mov dword [esp + 0x400], eax
add edi, 2
mov dword [esp + 0x3f8], edi
mov dword [esp + 0x3fc], ebx
push ebx
push ecx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esi + ebx], 0
lea ecx, [esp + 0x64]
lea eax, [esp + 0x3f8]
push eax
push eax
call fcn.00405de0
mov edi, eax
movzx ebx, byte [eax + 0x10]
mov esi, dword [eax + 0x18]
test byte [esp + 0x3f8], 1
je 0x4029de
push dword [esp + 0x400]
call sub.libc.dll_operator_delete_void_
add esp, 4
add edi, 0x11
test bl, 1
cmove esi, edi
mov eax, dword [esp + 0x6fc]
lea edx, [eax + 1]
cmp edx, dword [esp + 0x700]
ja 0x4030ca
mov ecx, dword [esp + 0x6f8]
mov dword [ecx + eax*4], esi
inc dword [esp + 0x6fc]
test byte [esp + 0x1e0], 1
je 0x402a28
push dword [esp + 0x1e8]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp + 0x70], 1
je 0x402c90
push dword [esp + 0x78]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x402c90
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
push eax
mov esi, ecx
call sub.libc.dll_operator_new_unsigned_int_
mov ecx, esi
add esp, 4
mov esi, eax
mov dword [esp + 0x400], eax
add edi, 2
mov dword [esp + 0x3f8], edi
mov dword [esp + 0x3fc], ebx
mov eax, dword [esp + 0xc]
add eax, ecx
push ebx
push eax
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esi + ebx], 0
lea ecx, [esp + 0x64]
lea eax, [esp + 0x3f8]
push eax
push eax
call fcn.00405de0
mov edi, eax
movzx ebx, byte [eax + 0x10]
mov esi, dword [eax + 0x18]
test byte [esp + 0x3f8], 1
je 0x402abc
push dword [esp + 0x400]
call sub.libc.dll_operator_delete_void_
add esp, 4
add edi, 0x11
test bl, 1
cmove esi, edi
mov ebx, dword [esp + 8]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp ecx, 0x13
ja 0x402aef
mov ecx, ebx
push 0x14
push str._Adding_argument
call fcn.00411ac6
mov ebx, eax
test esi, esi
jne 0x402b0e
jmp 0x402c34
movdqu xmm0, xmmword [str._Adding_argument]
movdqu xmmword [eax], xmm0
mov dword [eax + 0x10], 0x20746e65
add dword [ebx + 0x10], 0x14
test esi, esi
je 0x402c34
push esi
call sub.msvcrt.dll_strlen
add esp, 4
mov edi, eax
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp edi, ecx
jbe 0x402c22
mov ecx, ebx
push edi
push esi
call fcn.00411ac6
mov ebx, eax
jmp 0x402c34
test edi, edi
je 0x402b4b
push edi
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add dword [ebx + 0x10], edi
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp ecx, 0xd
ja 0x402bce
mov ecx, ebx
push 0xe
push str._at_beginning_n
call fcn.00411ac6
mov eax, dword [esp + 0x6f8]
mov ecx, dword [esp + 0x6fc]
cmp ecx, 1
je 0x402c03
lea edx, [ecx + 1]
cmp edx, dword [esp + 0x700]
ja 0x403110
lea edi, [eax + 4]
mov edx, dword [eax + ecx*4 - 4]
mov dword [eax + ecx*4], edx
mov edx, dword [esp + 0x6f8]
lea eax, [edx + ecx*4]
add eax, 0xfffffffc
sub eax, edi
je 0x402bbf
lea ecx, [edx + ecx*4]
sub ecx, eax
push eax
push edi
push ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ecx, dword [esp + 0x6fc]
inc ecx
mov dword [esp + 0x6fc], ecx
mov dword [edi], esi
jmp 0x402c90
mov word [eax + 0xc], 0xa67
mov dword [eax + 8], 0x6e696e6e
mov dword [eax + 4], 0x69676562
mov dword [eax], 0x20746120
add dword [ebx + 0x10], 0xe
mov eax, dword [esp + 0x6f8]
mov ecx, dword [esp + 0x6fc]
cmp ecx, 1
jne 0x402b7d
mov ecx, 1
cmp dword [esp + 0x700], 1
jbe 0x40313a
mov dword [eax + ecx*4], esi
inc dword [esp + 0x6fc]
jmp 0x402c90
test edi, edi
je 0x402c34
push edi
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add dword [ebx + 0x10], edi
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp ecx, 7
ja 0x402c51
mov ecx, ebx
push 8
push str._at_end_n
call fcn.00411ac6
jmp 0x402c64
mov ecx, 0x20746120
mov dword [eax], ecx
mov ecx, 0xa646e65
mov dword [eax + 4], ecx
add dword [ebx + 0x10], 8
mov eax, dword [esp + 0x6fc]
lea edx, [eax + 1]
cmp edx, dword [esp + 0x700]
ja 0x4030ed
mov ecx, dword [esp + 0x6f8]
mov dword [ecx + eax*4], esi
inc dword [esp + 0x6fc]
nop dword [eax]
test byte [esp + 0x30], 1
je 0x401ea0
push dword [esp + 0x38]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x401ea0
mov esi, dword [esp + 0xc]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
cmp ecx, 7
jbe 0x402720
jmp 0x40275b
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1e4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x1e4], ebx
mov dword [esp + 0x1e0], esi
mov byte [esp + 0x70], 0x2f
mov eax, 1
mov dword [esp + 0x3fc], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x3f8], eax
sub esp, 0xc
movq xmm0, qword [esp + 0x404]
movq qword [esp], xmm0
mov dword [esp + 8], 0
lea ecx, [esp + 0x1ec]
call fcn.00411fb2
cmp eax, 0xffffffff
je 0x402d47
mov esi, eax
mov ebx, dword [esp + 0x1e4]
inc esi
cmp ebx, esi
cmovb esi, ebx
sub ebx, esi
add esi, dword [esp + 0x1e0]
jmp 0x402d4b
xor esi, esi
xor ebx, ebx
lea eax, [ebx - 1]
cmp eax, ebx
cmovb ebx, eax
mov eax, dword [esp + 0x6fc]
mov dword [esp + 0x10], eax
cmp eax, 1
je 0x402c90
mov edi, 1
mov dword [esp + 0x2c], esi
mov dword [esp + 0x60], ebx
jmp 0x402d8d
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 4]
inc edi
cmp dword [esp + 0x10], edi
je 0x402c90
mov eax, dword [esp + 0x6f8]
cmp dword [eax + edi*4], 0
je 0x402d82
mov eax, dword [esp + 0x14]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], eax
sub esp, 0xc
movsd xmm0, qword [esp + 0x7c]
movsd qword [esp], xmm0
mov dword [esp + 8], 0
lea ecx, [esp + 0x404]
call fcn.00411ec2
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x6f8]
mov dword [esp + 4], edi
mov eax, dword [eax + edi*4]
mov dword [esp + 0x100], eax
test eax, eax
je 0x402df8
push eax
call sub.msvcrt.dll_strlen
add esp, 4
jmp 0x402dfa
xor eax, eax
mov dword [esp + 0x104], eax
sub esp, 0x18
movsd xmm0, qword [esp + 0x118]
movsd qword [esp + 0xc], xmm0
movq xmm0, qword [esp + 0x38]
movq qword [esp + 4], xmm0
lea esi, [esp + 0x410]
mov dword [esp], esi
mov dword [esp + 0x14], 0
lea ecx, [esp + 0x1f8]
call fcn.00411f88
mov ecx, esi
call fcn.00411ec8
mov eax, dword [esp + 0x6f8]
mov ecx, dword [esp + 4]
mov esi, dword [eax + ecx*4]
push esi
call sub.msvcrt.dll_strlen
add esp, 4
movzx ecx, byte [esp + 0x1e0]
mov ebx, ecx
and bl, 1
je 0x402e77
mov ecx, dword [esp + 0x1e4]
cmp eax, ecx
je 0x402e7d
jmp 0x402eab
shr ecx, 1
cmp eax, ecx
jne 0x402eab
cmp eax, 0xffffffff
je 0x404ce1
lea ecx, [esp + 0x1e1]
test bl, bl
je 0x402e98
mov ecx, dword [esp + 0x1e8]
push eax
push esi
push ecx
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x4030ae
mov ebx, dword [esp + 8]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp ecx, 0xe
ja 0x402ece
mov ecx, ebx
push 0xf
push str._Replacing_
call fcn.00411ac6
mov ebx, eax
jmp 0x402eed
mov dword [eax + 0xb], 0x2720676e
mov dword [eax + 8], 0x6e696361
mov dword [eax + 4], 0x6c706552
mov dword [eax], 0x20232323
add dword [ebx + 0x10], 0xf
mov eax, dword [esp + 0x6f8]
mov ecx, dword [esp + 4]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x402f35
push esi
call sub.msvcrt.dll_strlen
add esp, 4
mov edi, eax
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp edi, ecx
jbe 0x402f23
mov ecx, ebx
push edi
push esi
call fcn.00411ac6
mov ebx, eax
jmp 0x402f35
test edi, edi
je 0x402f35
push edi
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add dword [ebx + 0x10], edi
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp ecx, 7
ja 0x402f69
mov ecx, ebx
push 8
push str._with_
call fcn.00411ac6
mov ebx, eax
movzx eax, byte [esp + 0x1e0]
test al, 1
jne 0x402f86
shr eax, 1
lea edx, [esp + 0x1e1]
jmp 0x402f94
mov dword [eax + 4], 0x27206874
mov dword [eax], 0x69772027
add dword [ebx + 0x10], 8
movzx eax, byte [esp + 0x1e0]
test al, 1
je 0x402f5e
mov edx, dword [esp + 0x1e8]
mov eax, dword [esp + 0x1e4]
mov ecx, ebx
push eax
push edx
call fcn.00411ac6
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 1
ja 0x402fd0
mov ecx, eax
push 2
push 0x413241
call fcn.00411ac6
movzx ebx, byte [esp + 0x1e0]
test bl, 1
jne 0x402fe6
shr ebx, 1
lea ecx, [esp + 0x1e1]
jmp 0x402ff4
mov word [ecx], 0xa27
add dword [eax + 0x10], 2
movzx ebx, byte [esp + 0x1e0]
test bl, 1
je 0x402fc5
mov ecx, dword [esp + 0x1e8]
mov ebx, dword [esp + 0x1e4]
cmp ebx, 0xfffffff0
jae 0x404cc0
cmp ebx, 0xb
jae 0x40301a
mov eax, ebx
add al, bl
mov byte [esp + 0x3f8], al
lea esi, [esp + 0x3f9]
test ebx, ebx
jne 0x403049
jmp 0x403054
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
push eax
mov esi, ecx
call sub.libc.dll_operator_new_unsigned_int_
mov ecx, esi
add esp, 4
mov esi, eax
mov dword [esp + 0x400], eax
add edi, 2
mov dword [esp + 0x3f8], edi
mov dword [esp + 0x3fc], ebx
push ebx
push ecx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esi + ebx], 0
lea ecx, [esp + 0x64]
lea eax, [esp + 0x3f8]
push eax
push eax
call fcn.00405de0
mov edi, eax
movzx ebx, byte [eax + 0x10]
mov esi, dword [eax + 0x18]
test byte [esp + 0x3f8], 1
je 0x40308c
push dword [esp + 0x400]
call sub.libc.dll_operator_delete_void_
add esp, 4
add edi, 0x11
test bl, 1
cmove esi, edi
mov eax, dword [esp + 0x6f8]
mov ecx, dword [esp + 4]
mov dword [eax + ecx*4], esi
movzx ebx, byte [esp + 0x1e0]
and bl, 1
test bl, bl
je 0x402d76
push dword [esp + 0x1e8]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x402d76
lea ecx, [esp + 0x6f8]
push 4
push edx
lea eax, [esp + 0x70c]
push eax
call fcn.00411b3e
mov eax, dword [esp + 0x6fc]
jmp 0x4029fe
lea ecx, [esp + 0x6f8]
push 4
push edx
lea eax, [esp + 0x70c]
push eax
call fcn.00411b3e
mov eax, dword [esp + 0x6fc]
jmp 0x402c7b
lea ecx, [esp + 0x6f8]
push 4
push edx
lea eax, [esp + 0x70c]
push eax
call fcn.00411b3e
mov eax, dword [esp + 0x6f8]
mov ecx, dword [esp + 0x6fc]
jmp 0x402b8d
lea ecx, [esp + 0x6f8]
push 4
push 2
lea eax, [esp + 0x70c]
push eax
call fcn.00411b3e
mov eax, dword [esp + 0x6f8]
mov ecx, dword [esp + 0x6fc]
jmp 0x402c16
push eax
push str._fintegrated_cc1
push esi
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x4031e5
nop word cs:[eax + eax]
add ebx, 4
cmp edi, ebx
je 0x4031f7
mov eax, dword [esp + 4]
mov esi, dword [eax + ebx]
test esi, esi
je 0x403190
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0x10
je 0x403170
cmp eax, 0x13
jne 0x403190
movdqu xmm0, xmmword [esi]
pcmpeqb xmm0, xmmword [0x413090]
movdqu xmm1, xmmword [esi + 3]
pcmpeqb xmm1, xmmword [0x413080]
pand xmm1, xmm0
pmovmskb eax, xmm1
cmp eax, 0xffff
jne 0x403190
mov al, 1
mov dword [esp + 0x10], eax
jmp 0x403190
mov dword [esp + 0x10], 0
jmp 0x403190
mov dword [esp + 0x10], 0
mov eax, dword [esp + 4]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x164], eax
sub esp, 0xc
movsd xmm0, qword [esp + 0x16c]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x124]
mov dword [esp], eax
call fcn.004119dc
add esp, 0xc
mov esi, dword [esp + 0x118]
test esi, esi
je 0x40323e
inc dword [esi]
mov dword [esp + 0x118], 0
push 0x28
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov edi, eax
call fcn.00411e92
mov dword [esp + 4], edi
mov ecx, edi
push 0
push esi
push eax
call fcn.004119d0
push dword [esp + 0x5c]
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x404cd5
mov ebx, eax
mov dword [esp + 8], esi
cmp eax, 0xb
jae 0x4032a1
mov eax, ebx
add al, bl
mov byte [esp + 0x1e0], al
lea esi, [esp + 0x1e1]
test ebx, ebx
jne 0x4032cc
jmp 0x4032da
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov dword [esp + 0x1e8], eax
add edi, 2
mov dword [esp + 0x1e0], edi
mov dword [esp + 0x1e4], ebx
push ebx
push dword [esp + 0x60]
push esi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov byte [esi + ebx], 0
movzx eax, byte [esp + 0x1e0]
mov ecx, eax
shr ecx, 1
test al, 1
lea eax, [esp + 0x1e1]
cmovne eax, dword [esp + 0x1e8]
mov dword [esp + 0x30], eax
cmovne ecx, dword [esp + 0x1e4]
mov dword [esp + 0x34], ecx
sub esp, 0xc
movq xmm0, qword [esp + 0x3c]
movq qword [esp], xmm0
mov dword [esp + 8], 0
call fcn.00411e5c
add esp, 0xc
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
cmp edx, 2
jne 0x403374
mov dword [esp + 0x3f8], 0x413419
mov dword [esp + 0x3fc], 2
sub esp, 8
movq xmm0, qword [esp + 0x400]
movq qword [esp], xmm0
lea ecx, [esp + 0x78]
call fcn.00411fac
test eax, eax
je 0x4033d9
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
jmp 0x403376
mov ebx, edx
mov dword [esp + 0x14], eax
cmp ebx, 0xfffffff0
jae 0x404cc0
cmp ebx, 0xb
jae 0x4033a8
mov eax, ebx
add al, bl
mov byte [esp + 0x3f8], al
lea esi, [esp + 0x3f9]
test ebx, ebx
je 0x4038bd
mov eax, dword [esp + 0x14]
jmp 0x403402
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov dword [esp + 0x400], eax
add edi, 2
mov dword [esp + 0x3f8], edi
mov dword [esp + 0x3fc], ebx
mov eax, dword [esp + 0x14]
jmp 0x403402
mov dword [esp + 0x70], str.clang_cl
mov eax, str.clang_cl
mov dword [esp + 0x74], 8
mov byte [esp + 0x3f8], 0x10
mov ebx, 8
lea esi, [esp + 0x3f9]
push ebx
push eax
push esi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov byte [esi + ebx], 0
mov eax, dword [esp + 4]
mov esi, eax
add esi, 0x18
test byte [eax + 0x18], 1
je 0x40342f
mov eax, dword [esp + 4]
push dword [eax + 0x20]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov eax, dword [esp + 0x400]
mov dword [esi + 8], eax
movsd xmm0, qword [esp + 0x3f8]
movsd qword [esi], xmm0
test byte [esp + 0x1e0], 1
lea ebx, [esp + 0x1e0]
je 0x403466
push dword [esp + 0x1e8]
call sub.libc.dll_operator_delete_void_
add esp, 4
push 8
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov ecx, eax
call fcn.00411964
mov eax, dword [esi]
add eax, 2
mov dword [esp + 0x114], esi
mov dword [esp + 0x14], esi
mov dword [esi], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x110], eax
test eax, eax
je 0x40349c
inc dword [eax]
lea eax, [esp + 0x110]
lea edx, [esp + 0x114]
lea edi, [esp + 0x3f8]
mov ecx, edi
push 1
push dword [esp + 8]
push eax
push edx
call fcn.004119a6
mov esi, dword [esp + 0x110]
test esi, esi
je 0x4034df
dec dword [esi]
jne 0x4034df
mov ecx, esi
call fcn.00406560
push esi
call sub.libc.dll_operator_delete_void_
add esp, 4
mov esi, dword [esp + 0x114]
test esi, esi
je 0x4034ee
dec dword [esi]
je 0x403507
mov edx, dword [esp + 8]
movzx ecx, byte [edx + 0x3c]
test cl, 1
je 0x403524
mov eax, dword [edx + 0x40]
test eax, eax
jne 0x403530
jmp 0x4035f2
mov ecx, esi
call fcn.0041196a
push esi
call sub.libc.dll_operator_delete_void_
add esp, 4
mov edx, dword [esp + 8]
movzx ecx, byte [edx + 0x3c]
test cl, 1
jne 0x4034fb
mov eax, ecx
shr eax, 1
test eax, eax
je 0x4035f2
test cl, 1
je 0x40353a
mov ecx, dword [edx + 0x44]
jmp 0x40353d
lea ecx, [edx + 0x3d]
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], eax
sub esp, 0x14
movsd xmm0, qword [esp + 0x16c]
movsd qword [esp + 4], xmm0
mov dword [esp + 0xc], edx
mov dword [esp], ebx
mov dword [esp + 0x10], 1
call fcn.0041198e
add esp, 0x14
push 0x18
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov ecx, dword [esp + 0x424]
mov dword [esp + 0x424], 0
mov edx, dword [esp + 0x1e0]
mov dword [esp + 0x1e0], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov esi, dword [sym.imp.libclang_cpp.dll_vtable_for_clang::ChainedDiagnosticConsumer]
add esi, 8
mov dword [eax], esi
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
lea ecx, [esp + 0x3f8]
push 1
push eax
call fcn.004119a0
mov ecx, dword [esp + 0x1e0]
mov dword [esp + 0x1e0], 0
test ecx, ecx
je 0x4035ee
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [esp + 8]
push 0
push edx
push edi
call fcn.004119ca
add esp, 0xc
movzx eax, byte [esp + 0x100]
mov ecx, eax
shr ecx, 1
test al, 1
lea eax, [esp + 0x101]
cmovne eax, dword [esp + 0x108]
mov dword [esp + 0x150], eax
cmovne ecx, dword [esp + 0x104]
mov dword [esp + 0x154], ecx
lea eax, [esp + 0x70]
push eax
call fcn.00411e32
add esp, 4
movzx eax, byte [esp + 0x70]
mov ecx, eax
shr ecx, 1
test al, 1
lea edx, [esp + 0x71]
mov eax, dword [esp + 0x78]
cmove eax, edx
mov dword [esp + 0x148], eax
cmovne ecx, dword [esp + 0x74]
mov dword [esp + 0x14c], ecx
push 0x20
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x12c], eax
mov dword [esp + 0x124], 0x21
mov dword [esp + 0x128], 0x13
movups xmm0, xmmword [0x4131ff]
movups xmmword [eax], xmm0
mov dword [eax + 0xf], 0x72656c69
mov byte [eax + 0x13], 0
mov dword [esp + 0x10c], 0
sub esp, 0x1c
movsd xmm0, qword [esp + 0x164]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x16c]
movsd qword [esp], xmm0
lea eax, [esp + 0x128]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x140]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
lea ecx, [esp + 0x1fc]
call fcn.00411a18
mov ecx, dword [esp + 0x10c]
test ecx, ecx
je 0x40370a
lock dec dword [ecx + 4]
jne 0x40370a
mov eax, dword [ecx]
call dword [eax + 4]
test byte [esp + 0x124], 1
jne 0x403769
test byte [esp + 0x70], 1
jne 0x40377f
mov eax, dword [esp + 0x6f8]
mov esi, dword [eax]
test esi, esi
je 0x403798
push esi
call sub.msvcrt.dll_strlen
add esp, 4
mov edi, eax
lea ebx, [esp + 0x7c]
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0x80
cmp eax, 0x81
jb 0x4037b0
lea ecx, [esp + 0x70]
push 1
push edi
push ebx
call fcn.00411b3e
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
jmp 0x4037bc
push dword [esp + 0x12c]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp + 0x70], 1
je 0x40371b
push dword [esp + 0x78]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov eax, dword [esp + 0x6f8]
mov esi, dword [eax]
test esi, esi
jne 0x403728
lea ecx, [esp + 0x7c]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x78], 0x80
xor edi, edi
mov ebx, ecx
xor eax, eax
jmp 0x4037d1
xor eax, eax
mov ecx, ebx
test edi, edi
je 0x4038c4
add ecx, eax
push edi
push esi
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
add edi, eax
mov dword [esp + 0x74], edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edi
sub esp, 0xc
movsd xmm0, qword [esp + 0x2c]
movsd qword [esp], xmm0
mov dword [esp + 8], 0
call fcn.00411e62
add esp, 0xc
mov esi, dword [esp + 0x74]
cmp esi, edx
jne 0x403931
mov edi, dword [esp + 0x70]
test edx, edx
je 0x403824
push edx
push edi
push eax
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x403931
mov dword [esp + 0x1a0], edi
mov dword [esp + 0x1a4], esi
sub esp, 0xc
movsd xmm0, qword [esp + 0x1ac]
movsd qword [esp], xmm0
mov dword [esp + 8], 0
call fcn.00411e62
add esp, 0xc
mov dword [esp + 0x58], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x19c], 0
mov dword [esp + 0x198], 0
sub esp, 0x14
movsd xmm0, qword [esp + 0x1ac]
movsd qword [esp + 0xc], xmm0
movsd xmm0, qword [esp + 0x68]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x44]
mov dword [esp], eax
call fcn.00411e20
add esp, 0x14
movzx eax, byte [esp + 0x3c]
test al, 1
jne 0x40391a
mov edi, ebx
movzx ebx, byte [esp + 0x30]
test bl, 1
je 0x4038cd
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
jmp 0x4038d3
xor ebx, ebx
jmp 0x40340d
mov ecx, ebx
xor edi, edi
jmp 0x4037d1
shr ebx, 1
lea esi, [esp + 0x31]
mov dword [esp + 0x74], 0
cmp dword [esp + 0x78], ebx
jae 0x4038f4
lea ecx, [esp + 0x70]
push 1
push ebx
push edi
call fcn.00411b3e
mov ecx, dword [esp + 0x74]
jmp 0x4038fa
xor ecx, ecx
test ebx, ebx
je 0x403912
add ecx, dword [esp + 0x70]
push ebx
push esi
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x74]
movzx eax, byte [esp + 0x3c]
add ecx, ebx
mov dword [esp + 0x74], ecx
mov ebx, edi
test al, 1
jne 0x403931
test byte [esp + 0x30], 1
je 0x403931
push dword [esp + 0x38]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov dword [esp + 4], ebx
cmp byte [esp + 0x18], 0
je 0x403949
lea eax, [esp + 0x70]
push eax
call fcn.00411e3e
add esp, 4
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x194], ecx
mov dword [esp + 0x190], eax
sub esp, 0xc
movq xmm0, qword [esp + 0x19c]
movq qword [esp], xmm0
mov dword [esp + 8], 0
call fcn.00411e56
add esp, 0xc
mov ebx, edx
mov edi, eax
mov word [esp + 0x40], 0x105
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
lea eax, [esp + 0x30]
push 0
push eax
call fcn.00411e4a
add esp, 8
test eax, eax
jne 0x403a2c
cmp ebx, 0xfffffff0
jae 0x404cb7
cmp ebx, 0xb
jae 0x4039ca
mov eax, ebx
add al, bl
mov byte [esp + 0x30], al
lea esi, [esp + 0x31]
test ebx, ebx
jne 0x4039ec
jmp 0x4039f7
mov esi, ebx
or esi, 0xf
lea eax, [esi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x38], eax
add esi, 2
mov dword [esp + 0x30], esi
mov esi, eax
mov dword [esp + 0x34], ebx
push ebx
push edi
push esi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov byte [esi + ebx], 0
lea esi, [esp + 0x24c]
test byte [esp + 0x24c], 1
je 0x403a1b
push dword [esp + 0x254]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov eax, dword [esp + 0x38]
mov dword [esi + 8], eax
movq xmm0, qword [esp + 0x30]
movq qword [esi], xmm0
mov eax, dword [esp + 0x70]
cmp eax, dword [esp + 4]
je 0x403a3f
push eax
call sub.msvcrt.dll_free
add esp, 4
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x140], eax
test eax, eax
mov esi, dword [ebp + 0x10]
je 0x403a5c
push eax
call sub.msvcrt.dll_strlen
add esp, 4
jmp 0x403a5e
xor eax, eax
mov dword [esp + 0x144], eax
sub esp, 0xc
movq xmm0, qword [esp + 0x14c]
movq qword [esp + 4], xmm0
lea edi, [esp + 0x3c]
mov dword [esp], edi
call fcn.00411a24
add esp, 0xc
lea ecx, [esp + 0x22c]
push edi
call fcn.00411fee
lea ecx, [esp + 0x238]
lea eax, [esp + 0x3c]
push eax
call fcn.00411fee
movzx eax, byte [esp + 0x4c]
mov byte [esp + 0x248], al
mov eax, dword [esp + 0x48]
mov dword [esp + 0x244], eax
mov eax, dword [esp + 0x18]
or al, byte [esi + 8]
je 0x403ace
mov eax, dword [esi + 4]
mov dword [esp + 0x3c8], eax
xor eax, eax
cmp dword [esp + 0x6fc], 0
setne al
mov dword [esp + 4], eax
mov esi, dword [esp + 0x48]
test esi, esi
je 0x403c03
mov eax, dword [esp + 4]
lea edi, [eax*4]
add edi, dword [esp + 0x6f8]
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x404ccc
mov ebx, eax
cmp eax, 0xb
mov dword [esp + 0xc], edi
jae 0x403b2c
mov eax, ebx
add al, bl
mov byte [esp + 0x70], al
test ebx, ebx
lea eax, [esp + 0x71]
jne 0x403b4e
jmp 0x403b5d
mov edi, ebx
or ebx, 0xf
lea eax, [ebx + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x78], eax
add ebx, 2
mov dword [esp + 0x70], ebx
mov ebx, edi
mov dword [esp + 0x74], edi
push ebx
push esi
push eax
mov esi, eax
call sub.msvcrt.dll_memcpy
mov eax, esi
add esp, 0xc
mov byte [eax + ebx], 0
lea ecx, [esp + 0x64]
lea eax, [esp + 0x70]
push eax
push eax
call fcn.00405de0
mov esi, eax
movzx ebx, byte [eax + 0x10]
mov edi, dword [eax + 0x18]
test byte [esp + 0x70], 1
je 0x403b8c
push dword [esp + 0x78]
call sub.libc.dll_operator_delete_void_
add esp, 4
add esi, 0x11
test bl, 1
cmove edi, esi
mov ecx, dword [esp + 0x6f8]
mov eax, dword [esp + 0x6fc]
lea edx, [ecx + eax*4]
mov esi, dword [esp + 0xc]
cmp edx, esi
je 0x403dba
sub esi, ecx
sar esi, 2
lea edx, [eax + 1]
cmp edx, dword [esp + 0x700]
ja 0x404c63
lea esi, [ecx + esi*4]
mov edx, dword [ecx + eax*4 - 4]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x6f8]
lea ecx, [edx + eax*4]
add ecx, 0xfffffffc
sub ecx, esi
je 0x403bf9
lea eax, [edx + eax*4]
sub eax, ecx
push ecx
push esi
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x6fc]
inc eax
mov dword [esp + 0x6fc], eax
mov dword [esi], edi
cmp byte [esp + 0x4c], 0
je 0x403ce2
mov dword [esp + 0x20], str._target
movzx ebx, byte [esp + 0x30]
test bl, 1
je 0x403c2a
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
jmp 0x403c30
shr ebx, 1
lea ecx, [esp + 0x31]
cmp ebx, 0xfffffff0
jae 0x404ccc
cmp ebx, 0xb
jae 0x403c50
mov eax, ebx
add al, bl
mov byte [esp + 0x70], al
lea esi, [esp + 0x71]
test ebx, ebx
jne 0x403c76
jmp 0x403c81
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
push eax
mov esi, ecx
call sub.libc.dll_operator_new_unsigned_int_
mov ecx, esi
add esp, 4
mov esi, eax
mov dword [esp + 0x78], eax
add edi, 2
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], ebx
push ebx
push ecx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [esi + ebx], 0
lea ecx, [esp + 0x64]
lea eax, [esp + 0x70]
push eax
push eax
call fcn.00405de0
mov esi, eax
movzx ebx, byte [eax + 0x10]
mov edi, dword [eax + 0x18]
test byte [esp + 0x70], 1
je 0x403cb0
push dword [esp + 0x78]
call sub.libc.dll_operator_delete_void_
add esp, 4
add esi, 0x11
test bl, 1
cmove edi, esi
mov dword [esp + 0x24], edi
mov esi, dword [esp + 4]
shl esi, 2
add esi, dword [esp + 0x6f8]
lea eax, [esp + 0x28]
lea edx, [esp + 0x20]
lea ecx, [esp + 0x6f8]
push eax
push edx
push esi
call fcn.00405170
push str.CC_PRINT_OPTIONS
call sub.msvcrt.dll_getenv
add esp, 4
test eax, eax
je 0x403d18
push str.CC_PRINT_OPTIONS_FILE
call sub.msvcrt.dll_getenv
add esp, 4
mov esi, 2
test eax, eax
je 0x403d1a
lea ecx, [esp + 0x324]
push eax
call fcn.00411fd6
jmp 0x403d1a
xor esi, esi
mov eax, dword [esp + 0x348]
and eax, 0xfffffffd
or eax, esi
mov dword [esp + 0x348], eax
lea ebx, [esp + 0x330]
push str.CC_PRINT_HEADERS
call sub.msvcrt.dll_getenv
add esp, 4
test eax, eax
je 0x403d79
push str.CC_PRINT_HEADERS_FILE
call sub.msvcrt.dll_getenv
add esp, 4
test eax, eax
je 0x403d5e
mov ecx, ebx
push eax
call fcn.00411fd6
mov dword [esp + 0x34c], 1
mov dword [esp + 0x350], 0
jmp 0x40423f
push str.CC_PRINT_HEADERS_FORMAT
call sub.msvcrt.dll_getenv
add esp, 4
test eax, eax
je 0x403de4
mov edi, eax
push eax
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0xfffffff0
jae 0x404ced
mov ecx, eax
cmp eax, 0xb
jae 0x403dfe
mov eax, ecx
add al, cl
mov byte [esp + 0x20], al
lea esi, [esp + 0x21]
test ecx, ecx
jne 0x403e2b
jmp 0x403e3a
lea edx, [eax + 1]
cmp edx, dword [esp + 0x700]
ja 0x404c8d
mov dword [ecx + eax*4], edi
inc dword [esp + 0x6fc]
cmp byte [esp + 0x4c], 0
jne 0x403c0e
jmp 0x403ce2
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 0
jmp 0x403e57
mov ebx, ecx
or ebx, 0xf
lea eax, [ebx + 1]
push eax
mov esi, ecx
call sub.libc.dll_operator_new_unsigned_int_
mov ecx, esi
add esp, 4
mov esi, eax
mov dword [esp + 0x28], eax
add ebx, 2
mov dword [esp + 0x20], ebx
lea ebx, [esp + 0x330]
mov dword [esp + 0x24], ecx
push ecx
push edi
push esi
mov edi, ecx
call sub.msvcrt.dll_memmove
mov ecx, edi
add esp, 0xc
mov byte [esi + ecx], 0
push str.CC_PRINT_HEADERS_FILE
call sub.msvcrt.dll_getenv
add esp, 4
test eax, eax
je 0x403e57
mov ecx, ebx
push eax
call fcn.00411fd6
movzx eax, byte [esp + 0x20]
test al, 1
je 0x403e66
mov ecx, dword [esp + 0x24]
jmp 0x403e6a
mov ecx, eax
shr ecx, 1
mov bl, 1
test ecx, ecx
je 0x404218
lea edi, [esp + 0x21]
mov esi, edi
test al, 1
je 0x403e82
mov esi, dword [esp + 0x28]
test esi, esi
je 0x403ea9
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 7
je 0x40404d
cmp eax, 4
jne 0x403ea9
cmp dword [esi], 0x6e6f736a
je 0x404095
mov dword [esp + 0x34c], 0
mov esi, dword [esp + 0x1e0]
mov dword [esi + 0xb8], 0
mov dword [esi + 0xbc], 0x1ba
test byte [esi + 0xac], 1
jne 0x403ee3
mov word [esi + 0xac], 0
jmp 0x403ef6
mov eax, dword [esi + 0xb4]
mov byte [eax], 0
mov dword [esi + 0xb0], 0
lea ecx, [esi + 0xc0]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], esi
mov word [esp + 0x7c], 1
mov byte [esi + 0xc0], 0
mov dword [esi + 0x19c], 0
mov eax, dword [esi + 0x208]
test eax, eax
je 0x403f67
mov dword [esp + 4], ecx
mov edi, dword [esi + 0x204]
shl eax, 3
lea ebx, [eax + eax*4]
jmp 0x403f45
add ebx, 0xffffffd8
je 0x403f5a
test byte [edi + ebx - 0x10], 1
je 0x403f40
push dword [edi + ebx - 8]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x403f40
mov eax, dword [esp + 4]
movzx eax, byte [eax]
lea edi, [esp + 0x21]
jmp 0x403f69
xor eax, eax
mov dword [esi + 0x208], 0
movzx eax, al
mov byte [esi + eax + 0xc1], 2
mov eax, dword [esp + 0x70]
movzx ecx, byte [eax]
mov edx, ecx
inc dl
mov byte [eax], dl
mov dword [eax + ecx*8 + 0x14], 0
mov dword [eax + ecx*8 + 0x10], 0
movzx eax, byte [esp + 0x20]
test al, 1
je 0x403fae
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
jmp 0x403fb0
shr eax, 1
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], eax
sub esp, 8
movq xmm0, qword [esp + 0x5c]
movq qword [esp], xmm0
lea ecx, [esp + 0x78]
call fcn.004060b0
cmp byte [esp + 0x7c], 0
je 0x403ff4
mov ecx, dword [esp + 0x78]
movzx eax, byte [esp + 0x7d]
push eax
call fcn.0041199a
mov dword [esp + 0x78], 0
mov word [esp + 0x7c], 0
mov esi, dword [esp + 0x70]
test esi, esi
je 0x404216
mov eax, dword [esp + 0x74]
test eax, eax
je 0x404216
cmp esi, eax
jb 0x404080
lea ecx, [eax + 0x2400]
cmp ecx, esi
jb 0x404080
mov ecx, dword [eax + 0x2440]
lea edx, [ecx + 1]
mov dword [eax + 0x2440], edx
mov dword [eax + ecx*4 + 0x2400], esi
jmp 0x404216
lea ecx, [esp + 0x6f8]
mov edx, dword [ebp + 0x10]
call fcn.00404d00
mov dword [esp + 4], eax
jmp 0x40485f
mov eax, 0x74786574
xor eax, dword [esi]
mov ecx, 0x6c617574
xor ecx, dword [esi + 3]
xor edx, edx
or ecx, eax
sete dl
mov dword [esp + 0x34c], edx
jne 0x403eb4
mov dword [esp + 0x1c], 0
mov al, 1
mov dword [esp + 0xc], eax
jmp 0x4040ae
mov ecx, esi
call fcn.00406280
push esi
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x404216
mov dword [esp + 0x34c], 2
mov al, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], 0
push str.CC_PRINT_HEADERS_FILTERING
call sub.msvcrt.dll_getenv
add esp, 4
mov edi, eax
test eax, eax
mov esi, dword [esp + 8]
je 0x404120
push edi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 0x12
je 0x4040e7
cmp eax, 4
jne 0x404120
xor ecx, ecx
cmp dword [edi], 0x656e6f6e
sete cl
xor eax, eax
jmp 0x404117
movdqu xmm0, xmmword [edi]
movzx eax, word [edi + 0x10]
movd xmm1, eax
pcmpeqb xmm0, xmmword [0x4130a0]
pcmpeqb xmm1, xmmword [0x4130b0]
pand xmm1, xmm0
pmovmskb eax, xmm1
xor ecx, ecx
cmp eax, 0xffff
sete cl
mov eax, ecx
test cl, 1
jne 0x404999
mov dword [esp + 4], edi
mov edi, dword [esp + 0x1e0]
mov dword [edi + 0xb8], 0
mov dword [edi + 0xbc], 0x1ba
test byte [edi + 0xac], 1
jne 0x404153
mov word [edi + 0xac], 0
jmp 0x404166
mov eax, dword [edi + 0xb4]
mov byte [eax], 0
mov dword [edi + 0xb0], 0
mov byte [edi + 0xc0], 0
mov dword [edi + 0x19c], 0
mov eax, dword [edi + 0x208]
test eax, eax
je 0x4041b2
mov ebx, dword [edi + 0x204]
shl eax, 3
lea esi, [eax + eax*4]
jmp 0x404194
add esi, 0xffffffd8
je 0x4041a9
test byte [ebx + esi - 0x10], 1
je 0x40418f
push dword [ebx + esi - 8]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x40418f
movzx eax, byte [edi + 0xc0]
jmp 0x4041b4
xor eax, eax
mov dword [edi + 0x208], 0
movzx ecx, al
mov byte [edi + ecx + 0xc1], 2
mov edx, eax
inc dl
mov dword [edi + ecx*8 + 0xd4], 0
mov dword [edi + ecx*8 + 0xd0], 1
mov esi, dword [esp + 4]
mov ecx, esi
sar ecx, 0x1f
movzx edx, dl
mov byte [edi + edx + 0xc1], 1
add al, 2
mov byte [edi + 0xc0], al
mov dword [edi + edx*8 + 0xd4], ecx
mov dword [edi + edx*8 + 0xd0], esi
mov ecx, edi
push 0
call fcn.0041199a
xor ebx, ebx
mov esi, dword [esp + 8]
test byte [esp + 0x20], 1
je 0x40422f
push dword [esp + 0x28]
call sub.libc.dll_operator_delete_void_
add esp, 4
mov dword [esp + 4], 1
test bl, bl
je 0x4047e7
push str.CC_LOG_DIAGNOSTICS
call sub.msvcrt.dll_getenv
add esp, 4
mov esi, eax
test eax, eax
je 0x404270
push str.CC_LOG_DIAGNOSTICS_FILE
call sub.msvcrt.dll_getenv
add esp, 4
test eax, eax
je 0x404270
lea ecx, [esp + 0x33c]
push eax
call fcn.00411fd6
xor eax, eax
test esi, esi
setne al
mov esi, dword [esp + 0x354]
and esi, 0xfffffffe
or esi, eax
mov dword [esp + 0x354], esi
push str.CC_PRINT_PROC_STAT
call sub.msvcrt.dll_getenv
add esp, 4
xor edi, edi
test eax, eax
je 0x4042c9
push str.CC_PRINT_PROC_STAT_FILE
call sub.msvcrt.dll_getenv
add esp, 4
mov ebx, 4
test eax, eax
je 0x4042cb
lea ecx, [esp + 0x30c]
push eax
call fcn.00411fd6
mov esi, dword [esp + 0x354]
jmp 0x4042cb
xor ebx, ebx
and esi, 0xfffffffb
or esi, ebx
mov dword [esp + 0x354], esi
push str.CC_PRINT_INTERNAL_STAT
call sub.msvcrt.dll_getenv
add esp, 4
test eax, eax
je 0x404312
push str.CC_PRINT_INTERNAL_STAT_FILE
call sub.msvcrt.dll_getenv
add esp, 4
mov edi, 8
test eax, eax
je 0x404312
lea ecx, [esp + 0x318]
push eax
call fcn.00411fd6
mov esi, dword [esp + 0x354]
and esi, 0xfffffff7
or esi, edi
mov dword [esp + 0x354], esi
test byte [esp + 0x10], 1
jne 0x404340
mov dword [esp + 0x358], 0x4066a0
lea eax, [esp + 0x70]
mov dword [esp + 0x35c], eax
call fcn.00411bda
mov eax, dword [esp + 0x6f8]
mov ecx, dword [esp + 0x6fc]
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], ecx
sub esp, 8
movq xmm0, qword [esp + 0x140]
movq qword [esp], xmm0
lea ecx, [esp + 0x1e8]
call fcn.00411a06
mov ebx, eax
mov ecx, dword [eax + 0x1c]
push 0x6eb
call fcn.00405500
test eax, eax
mov dword [esp + 0xc], ebx
je 0x4043ed
mov edi, eax
mov eax, dword [eax + 0x1c]
mov esi, dword [eax]
test esi, esi
je 0x404535
mov dword [esp + 4], 1
push esi
call sub.msvcrt.dll_strlen
add esp, 4
cmp eax, 6
je 0x4044e8
cmp eax, 5
je 0x404508
cmp eax, 3
jne 0x404535
movzx eax, word [esi]
xor eax, 0x666f
movzx ecx, byte [esi + 2]
xor ecx, 0x66
or cx, ax
jne 0x404535
mov dword [esp + 4], 0
jmp 0x4043f5
mov dword [esp + 4], 1
push str.FORCE_CLANG_DIAGNOSTICS_CRASH
call sub.msvcrt.dll_getenv
add esp, 4
test eax, eax
mov eax, 3
mov ecx, dword [esp + 4]
cmovne ecx, eax
cmp dword [ebx + 0x48], 0
je 0x404440
mov eax, dword [ebx + 0x44]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov dword [esp + 4], ecx
cmp byte [ebx + 0x111], 0
je 0x404455
mov dword [esp + 0x2c], 3
mov esi, 1
xor ebx, ebx
jmp 0x40467b
mov dword [esp + 0x1c], 0
mov dword [esp + 4], ecx
cmp byte [ebx + 0x111], 0
jne 0x40442c
lea edi, [esp + 0x7c]
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 4
lea ecx, [esp + 0x1e0]
lea eax, [esp + 0x70]
push eax
push ebx
call fcn.00411a0c
mov esi, eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
xor ebx, ebx
test ecx, ecx
je 0x404666
shl ecx, 3
mov edx, dword [eax + ebx]
test esi, esi
cmove esi, edx
test edx, edx
js 0x404652
cmp edx, 3
je 0x404652
cmp edx, 0x46
je 0x404652
add ebx, 8
cmp ecx, ebx
jne 0x404496
mov ecx, dword [eax + ebx - 4]
mov dword [esp + 0x1c], ecx
cmp edx, 0x46
sete cl
cmp edx, 3
sete bl
or bl, cl
movzx ecx, bl
mov edx, 2
sub edx, ecx
mov dword [esp + 0x2c], edx
jmp 0x40466e
push eax
push str.always
push esi
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x404535
mov dword [esp + 4], 3
jmp 0x4043f5
push eax
push str.crash
push esi
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x4043f5
mov eax, 0x6f727265
xor eax, dword [esi]
movzx ecx, byte [esi + 4]
xor ecx, 0x72
or ecx, eax
je 0x40498c
call fcn.00411e92
mov ebx, eax
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub ecx, eax
cmp ecx, 0x11
ja 0x40455e
mov ecx, ebx
push 0x12
push str.Unknown_value_for
call fcn.00411ac6
mov ebx, eax
mov eax, dword [eax + 0x10]
jmp 0x404579
movdqu xmm0, xmmword [str.Unknown_value_for]
movdqu xmmword [eax], xmm0
mov word [eax + 0x10], 0x2072
mov eax, dword [ebx + 0x10]
add eax, 0x12
mov dword [ebx + 0x10], eax
mov edx, dword [edi + 0xc]
mov esi, dword [edi + 0x10]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
cmp ecx, esi
jae 0x404598
mov ecx, ebx
push esi
push edx
call fcn.00411ac6
mov ebx, eax
mov eax, dword [eax + 0x10]
jmp 0x4045af
test esi, esi
je 0x4045af
push esi
push edx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, dword [ebx + 0x10]
mov dword [ebx + 0x10], esi
mov eax, esi
mov ecx, dword [ebx + 0xc]
sub ecx, eax
cmp ecx, 2
ja 0x4045cb
mov ecx, ebx
push 3
push 0x41323d
call fcn.00411ac6
mov ebx, eax
jmp 0x4045d8
mov byte [eax + 2], 0x27
mov word [eax], 0x203a
add dword [ebx + 0x10], 3
mov eax, dword [edi + 0x1c]
mov edi, dword [eax]
test edi, edi
je 0x404617
push edi
call sub.msvcrt.dll_strlen
add esp, 4
mov esi, eax
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp esi, ecx
jbe 0x404605
mov ecx, ebx
push esi
push edi
call fcn.00411ac6
mov ebx, eax
jmp 0x404617
test esi, esi
je 0x404617
push esi
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add dword [ebx + 0x10], esi
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
sub ecx, eax
cmp ecx, 1
mov esi, dword [esp + 8]
ja 0x404638
mov ecx, ebx
push 2
push 0x413241
call fcn.00411ac6
jmp 0x404641
mov word [eax], 0xa27
add dword [ebx + 0x10], 2
mov dword [esp + 4], 1
mov ebx, dword [esp + 0xc]
jmp 0x4047d7
mov ecx, dword [eax + ebx + 4]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x2c], 1
mov bl, 1
jmp 0x40466e
mov dword [esp + 0x2c], 3
cmp eax, edi
je 0x40467b
push eax
call sub.msvcrt.dll_free
add esp, 4
push str.FORCE_CLANG_DIAGNOSTICS_CRASH
call sub.msvcrt.dll_getenv
add esp, 4
test eax, eax
je 0x4046e1
call fcn.00411e8c
mov edi, eax
call fcn.00411b50
test eax, eax
je 0x4046e1
push eax
mov dword [esp + 0x1c], eax
call sub.msvcrt.dll_strlen
add esp, 4
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
sub ecx, edx
cmp eax, ecx
jbe 0x4046c3
mov ecx, edi
push eax
push dword [esp + 0x1c]
call fcn.00411ac6
jmp 0x4046e1
test eax, eax
mov ecx, dword [esp + 0x18]
je 0x4046e1
push eax
push ecx
push edx
mov dword [esp + 0x24], eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x18]
add dword [edi + 0x10], eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x40474a
mov dword [esp + 0x130], 0x413262
mov dword [esp + 0x134], 0
sub esp, 0x1c
movq xmm0, qword [esp + 0x14c]
movq qword [esp + 0x10], xmm0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 0x18], 0
lea ecx, [esp + 0x1fc]
call fcn.00405630
test al, al
mov eax, 1
cmovne esi, eax
mov ecx, dword [esp + 0x420]
mov eax, dword [ecx]
call dword [eax + 0x14]
not bl
mov eax, dword [esp + 0x10]
or al, bl
test al, 1
je 0x40477b
call fcn.00411e92
push eax
call fcn.00411a9c
add esp, 4
call fcn.00411a96
mov ebx, dword [esp + 0xc]
jmp 0x4047c1
lea eax, [esp + 0x50]
push eax
call fcn.00411a90
add esp, 4
mov eax, dword [esp + 0x50]
mov dword [esp + 0x50], 0
push eax
call fcn.00411aa8
add esp, 4
mov edi, dword [esp + 0x50]
mov dword [esp + 0x50], 0
test edi, edi
mov ebx, dword [esp + 0xc]
je 0x4047c1
mov ecx, edi
call fcn.00411aa2
push edi
call sub.libc.dll_operator_delete_void_
add esp, 4
test esi, esi
mov eax, 1
cmovns eax, esi
mov dword [esp + 4], eax
test ebx, ebx
mov esi, dword [esp + 8]
je 0x4047e7
mov ecx, ebx
call fcn.004119ee
push ebx
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp + 0x3c], 1
je 0x4047fa
push dword [esp + 0x44]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp + 0x30], 1
je 0x40480d
push dword [esp + 0x38]
call sub.libc.dll_operator_delete_void_
add esp, 4
lea ecx, [esp + 0x1e0]
call fcn.004057a0
lea ecx, [esp + 0x3f8]
call fcn.004119ac
mov ecx, dword [esp + 0x14]
dec dword [ecx]
je 0x404951
dec dword [esi]
je 0x404969
test byte [esp + 0x100], 1
je 0x404852
push dword [esp + 0x108]
call sub.libc.dll_operator_delete_void_
add esp, 4
lea ecx, [esp + 0x64]
push dword [esp + 0x68]
call fcn.00406520
mov esi, dword [esp + 0x1b4]
test esi, esi
je 0x4048b7
mov ebx, dword [esp + 0x1b0]
shl esi, 2
xor edi, edi
nop word cs:[eax + eax]
lea ecx, [ebx + edi]
sub ecx, dword [esp + 0x1b0]
sar ecx, 2
shr ecx, 7
cmp ecx, 0x1e
mov eax, 0x1e
cmovae ecx, eax
mov eax, 0x1000
shl eax, cl
push 8
push eax
push dword [ebx + edi]
call fcn.00411b8c
add esp, 0xc
add edi, 4
cmp esi, edi
jne 0x404880
mov esi, dword [esp + 0x1cc]
mov eax, dword [esp + 0x1d0]
test eax, eax
je 0x4048ed
lea edi, [esi + eax*8]
nop dword [eax]
push 8
push dword [esi + 4]
push dword [esi]
call fcn.00411b8c
add esp, 0xc
add esi, 8
cmp esi, edi
jne 0x4048d0
mov esi, dword [esp + 0x1cc]
lea eax, [esp + 0x1d8]
cmp esi, eax
lea edi, [esp + 0x1bc]
je 0x404908
push esi
call sub.msvcrt.dll_free
add esp, 4
mov eax, dword [esp + 0x1b0]
cmp eax, edi
je 0x40491c
push eax
call sub.msvcrt.dll_free
add esp, 4
mov esi, dword [esp + 4]
mov eax, dword [esp + 0x6f8]
lea ecx, [esp + 0x704]
cmp eax, ecx
je 0x40493b
push eax
call sub.msvcrt.dll_free
add esp, 4
lea ecx, [esp + 0xb04]
call fcn.00411eec
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, ecx
call fcn.0041196a
push edi
call sub.libc.dll_operator_delete_void_
add esp, 4
dec dword [esi]
jne 0x404839
mov ecx, esi
call fcn.00406560
push esi
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp + 0x100], 1
jne 0x404843
jmp 0x404852
mov dword [esp + 4], 2
jmp 0x4043f5
test eax, eax
setne dl
sete cl
test byte [esp + 0xc], dl
jne 0x4049bb
mov edx, dword [esp + 0x1c]
and dl, cl
jne 0x4049bb
mov dword [esp + 0x350], eax
jmp 0x40421c
mov ebx, dword [esp + 0x1e0]
mov dword [ebx + 0xb8], 0
mov dword [ebx + 0xbc], 0x1bb
test byte [ebx + 0xac], 1
mov dword [esp + 4], edi
jne 0x4049ee
mov word [ebx + 0xac], 0
jmp 0x404a01
mov eax, dword [ebx + 0xb4]
mov byte [eax], 0
mov dword [ebx + 0xb0], 0
lea eax, [ebx + 0xc0]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], ebx
mov word [esp + 0x7c], 1
mov byte [ebx + 0xc0], 0
mov dword [ebx + 0x19c], 0
mov eax, dword [ebx + 0x208]
test eax, eax
je 0x404a61
mov edi, dword [ebx + 0x204]
shl eax, 3
lea esi, [eax + eax*4]
jmp 0x404a4c
add esi, 0xffffffd8
je 0x404a61
test byte [edi + esi - 0x10], 1
je 0x404a47
push dword [edi + esi - 8]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x404a47
mov dword [ebx + 0x208], 0
movzx eax, byte [esp + 0x20]
test al, 1
je 0x404a82
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 8]
jmp 0x404a8c
shr eax, 1
mov esi, dword [esp + 8]
lea ecx, [esp + 0x21]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
sub esp, 8
movq xmm0, qword [esp + 0x5c]
movq qword [esp], xmm0
lea ecx, [esp + 0x78]
call fcn.004060b0
mov edi, dword [esp + 0x70]
test edi, edi
jne 0x404bc6
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 0x2440]
test ecx, ecx
je 0x404b27
lea edx, [ecx - 1]
mov dword [eax + 0x2440], edx
mov edi, dword [eax + ecx*4 + 0x23fc]
mov byte [edi], 0
mov dword [edi + 0xdc], 0
mov eax, dword [edi + 0x148]
test eax, eax
je 0x404b14
mov ebx, dword [edi + 0x144]
shl eax, 3
lea esi, [eax + eax*4]
jmp 0x404aff
add esi, 0xffffffd8
je 0x404b14
test byte [ebx + esi - 0x10], 1
je 0x404afa
push dword [ebx + esi - 8]
call sub.libc.dll_operator_delete_void_
add esp, 4
jmp 0x404afa
mov dword [edi + 0x148], 0
mov esi, dword [esp + 8]
jmp 0x404bc2
push 0x240
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov edi, eax
mov byte [eax], 0
pxor xmm0, xmm0
movdqu xmmword [eax + 0x60], xmm0
movdqu xmmword [eax + 0x70], xmm0
movdqu xmmword [eax + 0x80], xmm0
movdqu xmmword [eax + 0x90], xmm0
movdqu xmmword [eax + 0xa0], xmm0
movdqu xmmword [eax + 0xb0], xmm0
movdqu xmmword [eax + 0xc0], xmm0
mov dword [eax + 0xd4], 0
mov dword [eax + 0xd0], 0
add eax, 0xe4
mov dword [edi + 0xd8], eax
mov dword [edi + 0xdc], 0
mov dword [edi + 0xe0], 8
lea eax, [edi + 0x150]
mov dword [edi + 0x144], eax
mov dword [edi + 0x148], 0
mov dword [edi + 0x14c], 6
mov dword [esp + 0x70], edi
mov ebx, dword [esp + 4]
mov eax, ebx
sar eax, 0x1f
movzx ecx, byte [edi]
mov byte [edi + ecx + 1], 1
mov edi, dword [esp + 0x70]
movzx ecx, byte [edi]
mov edx, ecx
inc dl
mov byte [edi], dl
mov dword [edi + ecx*8 + 0x14], eax
mov dword [edi + ecx*8 + 0x10], ebx
cmp byte [esp + 0x7c], 0
je 0x404c19
mov ecx, dword [esp + 0x78]
movzx eax, byte [esp + 0x7d]
push eax
call fcn.0041199a
mov dword [esp + 0x78], 0
mov word [esp + 0x7c], 0
mov edi, dword [esp + 0x70]
test edi, edi
je 0x404c5c
mov eax, dword [esp + 0x74]
test eax, eax
je 0x404c5c
cmp edi, eax
jb 0x404c4c
lea ecx, [eax + 0x2400]
cmp ecx, edi
jb 0x404c4c
mov ecx, dword [eax + 0x2440]
lea edx, [ecx + 1]
mov dword [eax + 0x2440], edx
mov dword [eax + ecx*4 + 0x2400], edi
xor ebx, ebx
jmp 0x40421c
mov ecx, edi
call fcn.00406280
push edi
call sub.libc.dll_operator_delete_void_
add esp, 4
xor ebx, ebx
jmp 0x40421c
lea ecx, [esp + 0x6f8]
push 4
push edx
lea eax, [esp + 0x70c]
push eax
call fcn.00411b3e
mov ecx, dword [esp + 0x6f8]
mov eax, dword [esp + 0x6fc]
jmp 0x403bc7
lea ecx, [esp + 0x6f8]
push 4
push edx
lea eax, [esp + 0x70c]
push eax
call fcn.00411b3e
mov ecx, dword [esp + 0x6f8]
mov eax, dword [esp + 0x6fc]
jmp 0x403dca
lea ecx, [esp + 0x30]
call fcn.00406090
lea ecx, [esp + 0x3f8]
call fcn.00406090
lea ecx, [esp + 0x70]
call fcn.00406090
lea ecx, [esp + 0x1e0]
call fcn.00406090
lea ecx, [esp + 0x1e0]
call fcn.00406070
lea ecx, [esp + 0x20]
call fcn.00406090
int3