Function at 0x40f030
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x9f0
mov edx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
lea ecx, [edx + ebx*4]
mov esi, edx
test ebx, ebx
mov dword [esp + 0x20], ecx
je 0x40f095
shl ebx, 2
mov esi, edx
mov dword [esp + 0x1c], edx
jmp 0x40f068
add esi, 4
add ebx, 0xfffffffc
je 0x40f08f
mov edi, dword [esi]
test edi, edi
je 0x40f060
mov dword [esp], edi
call sub.msvcrt.dll_strlen
mov edx, dword [esp + 0x1c]
cmp eax, 2
jne 0x40f060
movzx eax, word [edi]
cmp eax, 0x2d2d
jne 0x40f060
mov ecx, dword [esp + 0x20]
jmp 0x40f095
mov ecx, dword [esp + 0x20]
mov esi, ecx
mov edi, esi
sub edi, edx
sar edi, 2
xor eax, eax
cmp esi, ecx
setne al
lea ebx, [esi + eax*4]
mov dword [esp + 0x5f0], 0x427f98
mov dword [esp + 0x5f4], 0x2e
movsd xmm0, qword [esp + 0x5f0]
movsd qword [esp], xmm0
mov dword [esp + 8], 0
lea ecx, [esp + 0x97c]
mov esi, edx
call fcn.004220b6
sub esp, 0xc
mov dword [esp + 0x97c], 0x428840
mov byte [esp + 0x989], 1
mov dword [esp + 0x124], esi
mov dword [esp + 0x128], edi
movsd xmm0, qword [esp + 0x124]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x144]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x148]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x97c]
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
lea ecx, [esp + 0x1cc]
call fcn.0042214c
sub esp, 0x1c
cmp dword [esp + 0x1d4], 0
jne 0x40f166
cmp ebx, dword [esp + 0x20]
je 0x410b44
lea ecx, [esp + 0x1cc]
mov edx, 0xb
call fcn.00410bc0
test al, al
jne 0x410b6a
lea ecx, [esp + 0x1cc]
mov edx, 0x29
call fcn.00410bc0
test al, al
jne 0x410b90
lea eax, [esp + 0x40]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 2
mov dword [esp + 0x2b0], 2
lea eax, [esp + 0x2b0]
mov dword [esp + 0x5f0], eax
mov dword [esp + 0x5f4], 1
movsd xmm0, qword [esp + 0x5f0]
movsd qword [esp], xmm0
lea edi, [esp + 0x1cc]
mov ecx, edi
call fcn.00422146
sub esp, 8
mov ecx, dword [esp + 0x1d0]
lea esi, [ecx + eax*4]
cmp eax, edx
je 0x40f25b
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], edx
lea edi, [edx*4]
shl eax, 2
sub edi, eax
jmp 0x40f228
add esi, 4
add edi, 0xfffffffc
je 0x40f29d
mov ecx, dword [esi]
test ecx, ecx
je 0x40f220
mov dword [esp + 0x2b0], 2
mov dword [esp], 2
call fcn.00422134
sub esp, 4
test al, al
je 0x40f220
lea edi, [esp + 0x1cc]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
lea eax, [ecx + edx*4]
cmp esi, eax
je 0x40f29d
mov esi, dword [esi]
call fcn.004221a6
mov dword [esp + 0x20], eax
mov dword [esp + 4], edi
mov dword [esp], esi
lea ecx, [esp + 0x8c]
call fcn.0042212e
sub esp, 8
test byte [esp + 0x8c], 1
je 0x40f494
mov ebx, dword [esp + 0x94]
jmp 0x40f49b
mov dword [esp + 0x2b0], 1
lea eax, [esp + 0x2b0]
mov dword [esp + 0x5f0], eax
mov dword [esp + 0x5f4], 1
movsd xmm0, qword [esp + 0x5f0]
movsd qword [esp], xmm0
lea ecx, [esp + 0x1cc]
call fcn.00422146
sub esp, 8
mov ecx, dword [esp + 0x1d0]
lea edi, [ecx + eax*4]
cmp eax, edx
je 0x40f348
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], edx
lea esi, [edx*4]
shl eax, 2
sub esi, eax
jmp 0x40f31c
add edi, 4
add esi, 0xfffffffc
je 0x40f40d
mov ecx, dword [edi]
test ecx, ecx
je 0x40f310
mov dword [esp + 0x2b0], 1
mov dword [esp], 1
call fcn.00422134
sub esp, 4
test al, al
je 0x40f310
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
lea esi, [ecx + edx*4]
cmp edi, esi
je 0x40f40d
mov eax, dword [edi]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x40f3d0
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
lea ecx, [eax + 1]
cmp ecx, dword [esp + 0x3c]
ja 0x40f3e5
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
mov dword [ecx + eax*8], edx
mov edx, dword [esp + 0x24]
mov dword [ecx + eax*8 + 4], edx
inc dword [esp + 0x38]
nop word cs:[eax + eax]
add edi, 4
cmp edi, esi
je 0x40f40d
mov ecx, dword [edi]
test ecx, ecx
je 0x40f3a0
mov dword [esp + 0x5f0], 1
mov dword [esp], 1
call fcn.00422134
sub esp, 4
test al, al
je 0x40f3a0
jmp 0x40f34b
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x38]
lea ecx, [eax + 1]
cmp ecx, dword [esp + 0x3c]
jbe 0x40f37b
mov dword [esp + 4], ecx
lea eax, [esp + 0x40]
mov dword [esp], eax
mov dword [esp + 8], 8
lea ecx, [esp + 0x34]
call fcn.00422056
sub esp, 0xc
mov eax, dword [esp + 0x38]
jmp 0x40f37b
cmp ebx, dword [esp + 0x20]
je 0x40f5f6
nop word [eax + eax]
mov esi, dword [ebx]
test esi, esi
je 0x40f460
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov edi, eax
mov eax, dword [esp + 0x38]
lea ecx, [eax + 1]
cmp ecx, dword [esp + 0x3c]
ja 0x40f46f
mov ecx, dword [esp + 0x34]
mov dword [ecx + eax*8], esi
mov dword [ecx + eax*8 + 4], edi
mov eax, dword [esp + 0x38]
inc eax
mov dword [esp + 0x38], eax
add ebx, 4
cmp ebx, dword [esp + 0x20]
jne 0x40f420
jmp 0x40f5fa
xor edi, edi
mov eax, dword [esp + 0x38]
lea ecx, [eax + 1]
cmp ecx, dword [esp + 0x3c]
jbe 0x40f43d
mov dword [esp + 4], ecx
lea eax, [esp + 0x40]
mov dword [esp], eax
mov dword [esp + 8], 8
lea ecx, [esp + 0x34]
call fcn.00422056
sub esp, 0xc
mov eax, dword [esp + 0x38]
jmp 0x40f43d
lea ebx, [esp + 0x8d]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x58], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x5f4], xmm0
mov byte [esp + 0x604], 0
mov dword [esp + 0x608], 0
mov dword [esp + 0x60c], 1
mov eax, dword [sym.imp.libLLVM_17.dll_vtable_for_llvm::raw_string_ostream]
add eax, 8
mov dword [esp + 0x5f0], eax
lea eax, [esp + 0x50]
mov dword [esp + 0x610], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
lea esi, [esp + 0x5f0]
mov ecx, esi
call fcn.00422002
sub esp, 0xc
mov dword [esp + 0x2b4], str.unknown_argument__s
mov dword [esp + 0x2b0], 0x4288b8
mov dword [esp + 0x2b8], ebx
lea eax, [esp + 0x2b0]
mov dword [esp], eax
mov ecx, esi
call fcn.0042201a
sub esp, 4
mov edi, dword [esp + 0x610]
mov dword [esp], 0x1c
call sub.libc.dll_operator_new_unsigned_int_
mov ebx, eax
mov word [esp + 0x2c0], 0x104
mov dword [esp + 0x2b0], edi
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], 0x16
movsd xmm0, qword [esp + 0xc0]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x2b0]
mov dword [esp], eax
mov ecx, ebx
call fcn.00421ff0
sub esp, 0xc
mov ecx, esi
call fcn.00422014
test byte [esp + 0x50], 1
je 0x40f5c8
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
mov esi, dword [ebp + 8]
or byte [esi + 0x388], 1
mov dword [esi], ebx
test byte [esp + 0x8c], 1
je 0x410ae9
mov eax, dword [esp + 0x94]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
jmp 0x410ae9
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4101ff
cmp eax, 1
mov esi, dword [ebp + 8]
je 0x40f67c
lea ecx, [esp + 0x1cc]
mov edx, 0x17
call fcn.00410bc0
test al, al
je 0x40f67c
call fcn.004221a6
mov dword [esp + 0x118], eax
mov dword [esp + 0x114], 0x16
movsd xmm0, qword [esp + 0x114]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x84]
mov dword [esp], eax
mov dword [esp + 0xc], str.multiple_input_files_cannot_be_used_in_combination_with__o
call fcn.00422068
or byte [esi + 0x388], 1
mov eax, dword [esp + 0x84]
mov dword [esi], eax
mov dword [esp + 0x84], 0
jmp 0x410ae9
mov eax, dword [sym.imp.libLLVM_17.dll_vtable_for_llvm::objcopy::ConfigManager]
add eax, 8
mov dword [esp + 0x2b0], eax
mov byte [esp + 0x2d2], 0
mov dword [esp + 0x2d4], 0
mov dword [esp + 0x2d8], 0
mov byte [esp + 0x2e0], 0
mov byte [esp + 0x2e8], 0
lea eax, [esp + 0x2ec]
xorps xmm0, xmm0
movups xmmword [esp + 0x2b4], xmm0
movups xmmword [esp + 0x2bd], xmm0
mov dword [esp], eax
mov dword [esp + 8], 0x1e0
mov dword [esp + 4], 0
call sub.msvcrt.dll_memset
mov dword [esp + 0x4cc], 0x1c
xorps xmm0, xmm0
movups xmmword [esp + 0x4d0], xmm0
mov dword [esp + 0x4e0], 0x10
movups xmmword [esp + 0x4e4], xmm0
mov dword [esp + 0x4f4], 0x10
movups xmmword [esp + 0x4f8], xmm0
mov dword [esp + 0x508], 0x10
movups xmmword [esp + 0x50c], xmm0
movaps xmm0, xmmword [0x4230d0]
movups xmmword [esp + 0x51c], xmm0
mov byte [esp + 0x52c], 1
mov dword [esp + 0x53c], 0
mov dword [esp + 0x531], 0
mov dword [esp + 0x52d], 0
mov dword [esp + 0x536], 0
mov dword [esp + 0x532], 0
mov byte [esp + 0x540], 0
mov dword [esp + 0x558], 0
mov word [esp + 0x560], 0
mov byte [esp + 0x562], 0
mov byte [esp + 0x568], 0
mov byte [esp + 0x56c], 0
mov byte [esp + 0x570], 0
mov byte [esp + 0x574], 0
mov byte [esp + 0x578], 0
mov byte [esp + 0x57c], 0
mov byte [esp + 0x5d0], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x5b9], xmm0
movups xmmword [esp + 0x5b0], xmm0
movups xmmword [esp + 0x5a0], xmm0
movups xmmword [esp + 0x590], xmm0
movups xmmword [esp + 0x580], xmm0
movups xmmword [esp + 0x5d4], xmm0
mov dword [esp + 0x5e3], 0
lea ecx, [esp + 0x1cc]
mov edx, 0x1a
call fcn.00410bc0
test al, al
je 0x40f8aa
lea ecx, [esp + 0x1cc]
mov edx, 0x2b
call fcn.00410bc0
test al, al
je 0x40f8aa
call fcn.004221a6
mov dword [esp + 0x110], eax
mov dword [esp + 0x10c], 0x16
movsd xmm0, qword [esp + 0x10c]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x80]
mov dword [esp], eax
mov dword [esp + 0xc], str.__regex_and___wildcard_are_incompatible
call fcn.00422068
or byte [esi + 0x388], 1
mov eax, dword [esp + 0x80]
mov dword [esi], eax
mov dword [esp + 0x80], 0
jmp 0x410add
lea esi, [esp + 0x1cc]
mov ecx, esi
mov edx, 0x1a
call fcn.00410bc0
mov ebx, eax
mov ecx, esi
mov edx, 0x1a
call fcn.00410bc0
mov dword [esp + 0x20], 2
test al, al
jne 0x40f8ef
lea ecx, [esp + 0x1cc]
mov edx, 0x2b
call fcn.00410bc0
movzx eax, al
mov dword [esp + 0x20], eax
lea esi, [esp + 0x1cc]
mov ecx, esi
mov edx, 3
call fcn.00410bc0
mov byte [esp + 0x560], al
mov ecx, esi
mov edx, 0x20
call fcn.00410bc0
mov byte [esp + 0x534], al
mov dword [esp], 6
mov ecx, esi
mov edx, 5
call fcn.00410d00
test eax, eax
je 0x40f960
mov dword [esp + 0x140], 5
mov dword [esp], 5
mov ecx, eax
call fcn.00422134
sub esp, 4
movzx eax, al
mov ecx, 2
sub ecx, eax
mov dword [esp + 0x304], ecx
movzx edi, bl
lea esi, [esp + 0x1cc]
mov ecx, esi
mov edx, 0x21
call fcn.00410bc0
mov byte [esp + 0x536], al
mov ecx, esi
mov edx, 0x24
call fcn.00410bc0
mov byte [esp + 0x537], al
mov dword [esp], 0x14
mov ecx, esi
mov edx, 0x1f
call fcn.00410d00
test eax, eax
je 0x40f9b5
mov eax, dword [eax]
cmp dword [eax + 0x18], 0x1f
sete byte [esp + 0x531]
inc edi
mov dword [esp + 0x1c], edi
lea esi, [esp + 0x1cc]
mov ecx, esi
mov edx, 0x1e
call fcn.00410bc0
mov byte [esp + 0x532], al
mov ecx, esi
mov edx, 0x27
call fcn.00410bc0
mov byte [esp + 0x5e4], al
mov ecx, esi
mov edx, 0x16
call fcn.00410bc0
mov byte [esp + 0x52f], al
mov ecx, esi
mov edx, 0xd
call fcn.00410bc0
mov byte [esp + 0x561], al
mov ecx, esi
mov edx, 0x12
call fcn.00410bc0
mov byte [esp + 0x5e5], al
mov dword [esp + 0x50], 0xf
lea eax, [esp + 0x50]
mov dword [esp + 0x5f0], eax
mov dword [esp + 0x5f4], 1
movsd xmm0, qword [esp + 0x5f0]
movsd qword [esp], xmm0
mov ecx, esi
call fcn.00422146
sub esp, 8
mov esi, edx
mov ecx, dword [esp + 0x1d0]
lea ebx, [ecx + eax*4]
cmp eax, edx
je 0x40fab1
mov dword [esp + 0x24], ecx
lea edi, [esi*4]
shl eax, 2
sub edi, eax
jmp 0x40fa8c
add ebx, 4
add edi, 0xfffffffc
je 0x40fbf0
mov ecx, dword [ebx]
test ecx, ecx
je 0x40fa80
mov dword [esp + 0x50], 0xf
mov dword [esp], 0xf
call fcn.00422134
sub esp, 4
test al, al
je 0x40fa80
mov ecx, dword [esp + 0x24]
lea esi, [ecx + esi*4]
cmp ebx, esi
je 0x40fbf0
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x104], eax
test eax, eax
je 0x40fad8
mov dword [esp], eax
call sub.msvcrt.dll_strlen
jmp 0x40fada
xor eax, eax
mov dword [esp + 0x108], eax
lea eax, [ebp + 0x14]
movsd xmm0, qword [eax]
movsd qword [esp + 0x2a8], xmm0
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x104]
movsd qword [esp + 4], xmm0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
lea edi, [esp + 0x1ac]
mov dword [esp], edi
call fcn.004220ec
mov dword [esp + 4], edi
lea eax, [esp + 0x32c]
mov dword [esp], eax
lea ecx, [esp + 0x5f0]
call fcn.00407510
sub esp, 8
test byte [esp + 0x1c8], 1
jne 0x40fb94
mov edi, dword [esp + 0x1c0]
test edi, edi
je 0x40fb6b
mov eax, 0xffffffff
lock xadd dword [edi + 4], eax
test eax, eax
jne 0x40fb6b
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov ecx, edi
call fcn.004221ac
mov edi, dword [esp + 0x1b8]
test edi, edi
je 0x40fbaf
mov eax, 0xffffffff
lock xadd dword [edi + 4], eax
test eax, eax
jne 0x40fbaf
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov ecx, edi
call fcn.004221ac
jmp 0x40fbaf
mov ecx, dword [esp + 0x1ac]
mov dword [esp + 0x1ac], 0
test ecx, ecx
je 0x40fbaf
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x5f0]
test eax, eax
jne 0x410942
nop
add ebx, 4
cmp ebx, esi
je 0x40fbf0
mov ecx, dword [ebx]
test ecx, ecx
je 0x40fbc0
mov dword [esp + 0x5f0], 0xf
mov dword [esp], 0xf
call fcn.00422134
sub esp, 4
test al, al
je 0x40fbc0
jmp 0x40fab4
mov dword [esp + 0x50], 0x1c
lea eax, [esp + 0x50]
mov dword [esp + 0x5f0], eax
mov dword [esp + 0x5f4], 1
movsd xmm0, qword [esp + 0x5f0]
movsd qword [esp], xmm0
lea ecx, [esp + 0x1cc]
call fcn.00422146
sub esp, 8
mov esi, edx
mov ecx, dword [esp + 0x1d0]
lea ebx, [ecx + eax*4]
cmp eax, edx
je 0x40fc81
mov dword [esp + 0x24], ecx
lea edi, [esi*4]
shl eax, 2
sub edi, eax
jmp 0x40fc5c
add ebx, 4
add edi, 0xfffffffc
je 0x40fdc0
mov ecx, dword [ebx]
test ecx, ecx
je 0x40fc50
mov dword [esp + 0x50], 0x1c
mov dword [esp], 0x1c
call fcn.00422134
sub esp, 4
test al, al
je 0x40fc50
mov ecx, dword [esp + 0x24]
lea esi, [ecx + esi*4]
cmp ebx, esi
je 0x40fdc0
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0xfc], eax
test eax, eax
je 0x40fca8
mov dword [esp], eax
call sub.msvcrt.dll_strlen
jmp 0x40fcaa
xor eax, eax
mov dword [esp + 0x100], eax
lea eax, [ebp + 0x14]
movsd xmm0, qword [eax]
movsd qword [esp + 0x2a0], xmm0
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0xfc]
movsd qword [esp + 4], xmm0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
lea edi, [esp + 0x18c]
mov dword [esp], edi
call fcn.004220ec
mov dword [esp + 4], edi
lea eax, [esp + 0x37c]
mov dword [esp], eax
lea ecx, [esp + 0x5f0]
call fcn.00407510
sub esp, 8
test byte [esp + 0x1a8], 1
jne 0x40fd64
mov edi, dword [esp + 0x1a0]
test edi, edi
je 0x40fd3b
mov eax, 0xffffffff
lock xadd dword [edi + 4], eax
test eax, eax
jne 0x40fd3b
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov ecx, edi
call fcn.004221ac
mov edi, dword [esp + 0x198]
test edi, edi
je 0x40fd7f
mov eax, 0xffffffff
lock xadd dword [edi + 4], eax
test eax, eax
jne 0x40fd7f
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov ecx, edi
call fcn.004221ac
jmp 0x40fd7f
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x18c], 0
test ecx, ecx
je 0x40fd7f
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x5f0]
test eax, eax
jne 0x410942
nop
add ebx, 4
cmp ebx, esi
je 0x40fdc0
mov ecx, dword [ebx]
test ecx, ecx
je 0x40fd90
mov dword [esp + 0x5f0], 0x1c
mov dword [esp], 0x1c
call fcn.00422134
sub esp, 4
test al, al
je 0x40fd90
jmp 0x40fc84
mov dword [esp + 0x50], 0x23
lea eax, [esp + 0x50]
mov dword [esp + 0x5f0], eax
mov dword [esp + 0x5f4], 1
movsd xmm0, qword [esp + 0x5f0]
movsd qword [esp], xmm0
lea ecx, [esp + 0x1cc]
call fcn.00422146
sub esp, 8
mov esi, edx
mov ecx, dword [esp + 0x1d0]
lea ebx, [ecx + eax*4]
cmp eax, edx
je 0x40fe51
mov dword [esp + 0x1c], ecx
lea edi, [esi*4]
shl eax, 2
sub edi, eax
jmp 0x40fe2c
add ebx, 4
add edi, 0xfffffffc
je 0x40ff90
mov ecx, dword [ebx]
test ecx, ecx
je 0x40fe20
mov dword [esp + 0x50], 0x23
mov dword [esp], 0x23
call fcn.00422134
sub esp, 4
test al, al
je 0x40fe20
mov ecx, dword [esp + 0x1c]
lea esi, [ecx + esi*4]
cmp ebx, esi
je 0x40ff90
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0xf4], eax
test eax, eax
je 0x40fe78
mov dword [esp], eax
call sub.msvcrt.dll_strlen
jmp 0x40fe7a
xor eax, eax
mov dword [esp + 0xf8], eax
lea eax, [ebp + 0x14]
movsd xmm0, qword [eax]
movsd qword [esp + 0x298], xmm0
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0xf4]
movsd qword [esp + 4], xmm0
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
lea edi, [esp + 0x16c]
mov dword [esp], edi
call fcn.004220ec
mov dword [esp + 4], edi
lea eax, [esp + 0x41c]
mov dword [esp], eax
lea ecx, [esp + 0x5f0]
call fcn.00407510
sub esp, 8
test byte [esp + 0x188], 1
jne 0x40ff34
mov edi, dword [esp + 0x180]
test edi, edi
je 0x40ff0b
mov eax, 0xffffffff
lock xadd dword [edi + 4], eax
test eax, eax
jne 0x40ff0b
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov ecx, edi
call fcn.004221ac
mov edi, dword [esp + 0x178]
test edi, edi
je 0x40ff4f
mov eax, 0xffffffff
lock xadd dword [edi + 4], eax
test eax, eax
jne 0x40ff4f
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov ecx, edi
call fcn.004221ac
jmp 0x40ff4f
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x16c], 0
test ecx, ecx
je 0x40ff4f
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x5f0]
test eax, eax
jne 0x410942
nop
add ebx, 4
cmp ebx, esi
je 0x40ff90
mov ecx, dword [ebx]
test ecx, ecx
je 0x40ff60
mov dword [esp + 0x5f0], 0x23
mov dword [esp], 0x23
call fcn.00422134
sub esp, 4
test al, al
je 0x40ff60
jmp 0x40fe54
mov dword [esp + 0x50], 0x11
lea eax, [esp + 0x50]
mov dword [esp + 0x5f0], eax
mov dword [esp + 0x5f4], 1
movsd xmm0, qword [esp + 0x5f0]
movsd qword [esp], xmm0
lea ecx, [esp + 0x1cc]
call fcn.00422146
sub esp, 8
mov esi, edx
mov ecx, dword [esp + 0x1d0]
lea ebx, [ecx + eax*4]
cmp eax, edx
je 0x410021
mov dword [esp + 0x1c], ecx
lea edi, [esi*4]
shl eax, 2
sub edi, eax
jmp 0x40fffc
add ebx, 4
add edi, 0xfffffffc
je 0x410160
mov ecx, dword [ebx]
test ecx, ecx
je 0x40fff0
mov dword [esp + 0x50], 0x11
mov dword [esp], 0x11
call fcn.00422134
sub esp, 4
test al, al
je 0x40fff0
mov ecx, dword [esp + 0x1c]
lea esi, [ecx + esi*4]
cmp ebx, esi
je 0x410160
mov eax, dword [ebx]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0xec], eax
test eax, eax
je 0x410048
mov dword [esp], eax
call sub.msvcrt.dll_strlen
jmp 0x41004a
xor eax, eax
mov dword [esp + 0xf0], eax
lea eax, [ebp + 0x14]
movsd xmm0, qword [eax]
movsd qword [esp + 0x290], xmm0
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0xec]
movsd qword [esp + 4], xmm0
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
lea edi, [esp + 0x14c]
mov dword [esp], edi
call fcn.004220ec
mov dword [esp + 4], edi
lea eax, [esp + 0x3cc]
mov dword [esp], eax
lea ecx, [esp + 0x5f0]
call fcn.00407510
sub esp, 8
test byte [esp + 0x168], 1
jne 0x410104
mov edi, dword [esp + 0x160]
test edi, edi
je 0x4100db
mov eax, 0xffffffff
lock xadd dword [edi + 4], eax
test eax, eax
jne 0x4100db
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov ecx, edi
call fcn.004221ac
mov edi, dword [esp + 0x158]
test edi, edi
je 0x41011f
mov eax, 0xffffffff
lock xadd dword [edi + 4], eax
test eax, eax
jne 0x41011f
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov ecx, edi
call fcn.004221ac
jmp 0x41011f
mov ecx, dword [esp + 0x14c]
mov dword [esp + 0x14c], 0
test ecx, ecx
je 0x41011f
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x5f0]
test eax, eax
jne 0x410942
nop
add ebx, 4
cmp ebx, esi
je 0x410160
mov ecx, dword [ebx]
test ecx, ecx
je 0x410130
mov dword [esp + 0x5f0], 0x11
mov dword [esp], 0x11
call fcn.00422134
sub esp, 4
test al, al
je 0x410130
jmp 0x410024
lea ecx, [esp + 0x1cc]
mov edx, 0x14
call fcn.00410bc0
mov ecx, dword [esp + 0x304]
test al, al
jne 0x41025f
cmp byte [esp + 0x534], 0
jne 0x41025f
cmp byte [esp + 0x52f], 0
jne 0x41025f
cmp byte [esp + 0x537], 0
jne 0x41025f
test ecx, ecx
jne 0x41025f
cmp byte [esp + 0x532], 0
jne 0x41025f
cmp dword [esp + 0x420], 0
jne 0x410276
mov eax, dword [esp + 0x42c]
cmp eax, dword [esp + 0x430]
jne 0x410276
mov eax, dword [esp + 0x438]
cmp eax, dword [esp + 0x43c]
jne 0x410276
lea eax, [esp + 0x531]
jmp 0x410273
call fcn.004221a6
mov dword [esp + 0x120], eax
mov dword [esp + 0x11c], 0x16
movsd xmm0, qword [esp + 0x11c]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x88]
mov dword [esp], eax
mov dword [esp + 0xc], str.no_input_file_specified
call fcn.00422068
mov esi, dword [ebp + 8]
or byte [esi + 0x388], 1
mov eax, dword [esp + 0x88]
mov dword [esi], eax
mov dword [esp + 0x88], 0
jmp 0x410ae9
cmp ecx, 1
jne 0x410276
lea eax, [esp + 0x561]
mov byte [esp + 0x534], 1
mov byte [eax], 1
mov dword [esp + 0x13c], 9
mov dword [esp + 0x138], 4
mov dword [esp + 4], 4
mov dword [esp], 9
mov dword [esp + 8], 1
lea esi, [esp + 0x1cc]
mov ecx, esi
call fcn.00422140
sub esp, 0xc
mov byte [esp + 0x52c], al
mov ecx, esi
mov edx, 0x18
call fcn.00410bc0
mov byte [esp + 0x530], al
mov dword [esp + 0x2bc], 0
mov dword [esp + 0x2c8], 0
lea eax, [esp + 0x600]
mov dword [esp + 0x5f0], eax
mov dword [esp + 0x5f4], 0
mov dword [esp + 0x5f8], 1
mov dword [esp + 0x940], 0
mov dword [esp + 0x944], 0
lea eax, [esp + 0x954]
mov dword [esp + 0x948], eax
mov dword [esp + 0x94c], 0
mov dword [esp + 0x950], 4
lea eax, [esp + 0x970]
mov dword [esp + 0x964], eax
movaps xmm0, xmmword [0x4230e0]
movups xmmword [esp + 0x968], xmm0
mov eax, dword [esp + 0x38]
cmp eax, 1
jne 0x4103f4
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x2b8], edx
mov dword [esp + 0x2b4], ecx
mov dword [esp + 0xbc], 0x17
movsd xmm0, qword [eax]
movsd qword [esp + 0x288], xmm0
movsd qword [esp + 4], xmm0
mov eax, dword [esp + 0xbc]
mov dword [esp], eax
lea ecx, [esp + 0x1cc]
call fcn.0042213a
sub esp, 0xc
mov dword [esp + 0x2c4], edx
mov dword [esp + 0x2c0], eax
lea eax, [esp + 0x2b0]
mov dword [esp], eax
lea ecx, [esp + 0x5f0]
call fcn.0040b320
sub esp, 4
cmp byte [esp + 0x530], 0
jne 0x410702
jmp 0x410819
xorps xmm0, xmm0
movaps xmmword [esp + 0xc0], xmm0
mov dword [esp + 0xd0], 8
test eax, eax
je 0x4106e8
mov esi, dword [esp + 0x34]
lea eax, [esi + eax*8]
mov dword [esp + 0x24], eax
mov eax, dword [sym.imp.libLLVM_17.dll_vtable_for_llvm::raw_string_ostream]
add eax, 8
mov dword [esp + 0xb0], eax
jmp 0x410472
mov dword [esp + 0x2b4], edi
mov dword [esp + 0x2b8], ebx
mov dword [esp + 0x2c0], edi
mov dword [esp + 0x2c4], ebx
lea eax, [esp + 0x2b0]
mov dword [esp], eax
lea ecx, [esp + 0x5f0]
call fcn.00410f10
sub esp, 4
add esi, 8
cmp esi, dword [esp + 0x24]
je 0x4106e8
mov edi, dword [esi]
mov ebx, dword [esi + 4]
movsd xmm0, qword [esi]
movsd qword [esp + 0x50], xmm0
movsd qword [esp], xmm0
lea ecx, [esp + 0xc0]
call fcn.0041a3d0
sub esp, 8
mov eax, dword [eax]
mov ecx, dword [eax + 4]
lea edx, [ecx + 1]
mov dword [eax + 4], edx
cmp ecx, 1
jne 0x410430
cmp ebx, 1
jne 0x4104b3
cmp byte [edi], 0x2d
je 0x410953
call fcn.004221a6
test edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0xb4], eax
je 0x4104ed
cmp ebx, 0xfffffff0
jae 0x410bb7
cmp ebx, 0xb
jae 0x41050b
mov eax, ebx
add al, bl
mov byte [esp + 0x28], al
mov ecx, ebx
lea ebx, [esp + 0x29]
test ecx, ecx
jne 0x410532
jmp 0x410546
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], 0
xor ebx, ebx
xor eax, eax
jmp 0x410553
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
mov dword [esp], eax
call sub.libc.dll_operator_new_unsigned_int_
mov ecx, ebx
mov ebx, eax
mov dword [esp + 0x30], eax
add edi, 2
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], ebx
call sub.msvcrt.dll_memmove
mov ecx, dword [esp + 0x20]
mov byte [ebx + ecx], 0
movzx eax, byte [esp + 0x28]
mov ebx, dword [esp + 0x30]
test al, 1
lea eax, [esp + 0x29]
cmove ebx, eax
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa8], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x54], xmm0
mov byte [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 1
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x50], eax
lea eax, [esp + 0xa0]
mov dword [esp + 0x70], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
lea edi, [esp + 0x50]
mov ecx, edi
call fcn.00422002
sub esp, 0xc
mov dword [esp + 0x90], str._s_was_already_specified
mov dword [esp + 0x8c], 0x4288b8
mov dword [esp + 0x94], ebx
lea eax, [esp + 0x8c]
mov dword [esp], eax
mov ecx, edi
call fcn.0042201a
sub esp, 4
mov edi, dword [esp + 0x70]
mov dword [esp], 0x1c
call sub.libc.dll_operator_new_unsigned_int_
mov ebx, eax
mov word [esp + 0x9c], 0x104
mov dword [esp + 0x8c], edi
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x130], eax
mov eax, 0x16
mov dword [esp + 0x12c], eax
movsd xmm0, qword [esp + 0x12c]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x8c]
mov dword [esp], eax
mov ecx, ebx
call fcn.00421ff0
sub esp, 0xc
lea ecx, [esp + 0x50]
call fcn.00422014
test byte [esp + 0xa0], 1
je 0x410688
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
lea ecx, [ebp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x50], ebx
lea edx, [esp + 0x50]
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
lea ecx, [esp + 0xb8]
mov dword [esp], ecx
call eax
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x4106b9
mov eax, dword [ecx]
call dword [eax + 4]
test byte [esp + 0x28], 1
je 0x4106cc
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sub.libc.dll_operator_delete_void_
mov eax, dword [esp + 0xb8]
test eax, eax
jne 0x410934
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
jmp 0x410430
lea ecx, [esp + 0xc0]
call fcn.00411010
cmp byte [esp + 0x530], 0
je 0x410819
mov esi, 0xffffffff
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov edx, ecx
test eax, eax
je 0x410749
lea edx, [ecx + eax*8]
mov dword [esp + 0x20], edx
lea ebx, [eax*8]
mov edx, ecx
jmp 0x410738
add edx, 8
add ebx, 0xfffffff8
je 0x410754
mov edi, dword [edx + 4]
and edi, esi
cmp edi, 1
jne 0x410730
mov edi, dword [edx]
cmp byte [edi], 0x2d
jne 0x410730
sub edx, ecx
sar edx, 3
cmp edx, eax
je 0x410761
jmp 0x4107b3
mov edx, dword [esp + 0x20]
sub edx, ecx
sar edx, 3
cmp edx, eax
jne 0x4107b3
mov dword [esp + 0x134], 0x17
mov dword [esp + 0xdc], 0x4233be
mov dword [esp + 0xe0], 0
movsd xmm0, qword [esp + 0xdc]
movsd qword [esp + 4], xmm0
mov dword [esp], 0x17
lea ecx, [esp + 0x1cc]
call fcn.0042213a
sub esp, 0xc
and edx, esi
cmp edx, 1
jne 0x410819
cmp byte [eax], 0x2d
jne 0x410819
call fcn.004221a6
mov dword [esp + 0xd8], eax
mov dword [esp + 0xd4], 0x16
movsd xmm0, qword [esp + 0xd4]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x78]
mov dword [esp], eax
mov dword [esp + 0xc], str.__preserve_dates_requires_a_file
call fcn.00422068
mov ecx, dword [ebp + 8]
or byte [ecx + 0x388], 1
mov eax, dword [esp + 0x78]
mov dword [ecx], eax
mov dword [esp + 0x78], 0
mov esi, dword [esp + 0x94c]
test esi, esi
jne 0x4109bc
jmp 0x410a10
mov esi, dword [ebp + 8]
and byte [esi + 0x388], 0xfe
lea eax, [esi + 0x10]
mov dword [esi], eax
mov dword [esi + 4], 0
mov dword [esi + 8], 1
cmp dword [esp + 0x5f4], 0
je 0x410854
lea eax, [esp + 0x5f0]
mov dword [esp], eax
mov ecx, esi
call fcn.00417280
sub esp, 4
movsd xmm0, qword [esp + 0x940]
movsd qword [esi + 0x350], xmm0
lea eax, [esi + 0x364]
mov dword [esi + 0x358], eax
mov dword [esi + 0x35c], 0
mov dword [esi + 0x360], 4
cmp dword [esp + 0x94c], 0
je 0x4108a7
lea eax, [esp + 0x948]
lea ecx, [esi + 0x358]
mov dword [esp], eax
call fcn.004197b0
sub esp, 4
mov ecx, esi
add esi, 0x380
mov dword [ecx + 0x374], esi
mov dword [ecx + 0x378], 0
mov dword [ecx + 0x37c], 0
cmp dword [esp + 0x968], 0
je 0x4108eb
lea eax, [esp + 0x964]
add ecx, 0x374
mov dword [esp], eax
call fcn.004198b0
sub esp, 4
movsd xmm0, qword [esp + 0x970]
movsd qword [esi], xmm0
mov dword [esp + 0x944], 0
mov dword [esp + 0x940], 0
mov dword [esp + 0x970], 0
mov dword [esp + 0x94c], 0
mov dword [esp + 0x968], 0
jmp 0x410a50
mov ecx, dword [ebp + 8]
or byte [ecx + 0x388], 1
mov dword [ecx], eax
jmp 0x4109a5
mov esi, dword [ebp + 8]
or byte [esi + 0x388], 1
mov dword [esi], eax
jmp 0x410add
call fcn.004221a6
mov dword [esp + 0xe8], eax
mov dword [esp + 0xe4], 0x16
movsd xmm0, qword [esp + 0xe4]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 0xc], str.cannot_specify___as_an_input_file_more_than_once
call fcn.00422068
mov ecx, dword [ebp + 8]
or byte [ecx + 0x388], 1
mov eax, dword [esp + 0x7c]
mov dword [ecx], eax
mov dword [esp + 0x7c], 0
lea ecx, [esp + 0xc0]
call fcn.00411010
mov esi, dword [esp + 0x94c]
test esi, esi
je 0x410a10
mov edi, dword [esp + 0x948]
shl esi, 2
xor ebx, ebx
nop dword [eax + eax]
lea ecx, [edi + ebx]
sub ecx, dword [esp + 0x948]
sar ecx, 2
shr ecx, 7
cmp ecx, 0x1e
mov eax, 0x1e
cmovae ecx, eax
mov eax, 0x1000
shl eax, cl
mov ecx, dword [edi + ebx]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 8
call fcn.0042206e
add ebx, 4
cmp esi, ebx
jne 0x4109d0
mov esi, dword [esp + 0x964]
mov eax, dword [esp + 0x968]
test eax, eax
je 0x410a57
lea edi, [esi + eax*8]
nop word cs:[eax + eax]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
call fcn.0042206e
add esi, 8
cmp esi, edi
jne 0x410a30
mov esi, dword [esp + 0x964]
lea eax, [esp + 0x970]
cmp esi, eax
je 0x410a6a
mov dword [esp], esi
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x948]
lea ecx, [esp + 0x954]
cmp eax, ecx
je 0x410a84
mov dword [esp], eax
call sub.msvcrt.dll_free
mov esi, dword [esp + 0x5f0]
mov eax, dword [esp + 0x5f4]
test eax, eax
je 0x410ac7
imul edi, eax, 0x340
add esi, 0xfffffcc0
nop word cs:[eax + eax]
lea ecx, [esi + edi]
mov eax, dword [esi + edi]
call dword [eax]
add edi, 0xfffffcc0
jne 0x410ab0
mov esi, dword [esp + 0x5f0]
lea eax, [esp + 0x600]
cmp esi, eax
je 0x410ada
mov dword [esp], esi
call sub.msvcrt.dll_free
mov esi, dword [ebp + 8]
lea ecx, [esp + 0x2b0]
call fcn.0040b520
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x40]
cmp eax, ecx
je 0x410afd
mov dword [esp], eax
call sub.msvcrt.dll_free
lea ecx, [esp + 0x1cc]
call fcn.0040b600
mov dword [esp + 0x97c], 0x427994
mov eax, dword [esp + 0x9b0]
lea ecx, [esp + 0x9bc]
cmp eax, ecx
je 0x410b2e
mov dword [esp], eax
call sub.msvcrt.dll_free
lea ecx, [esp + 0x97c]
call fcn.004220bc
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.004220ce
mov dword [esp], 1
lea ecx, [esp + 0x97c]
mov edx, eax
call fcn.004063d0
mov dword [esp], 1
call sub.msvcrt.dll_exit
call fcn.004220d4
mov dword [esp], 1
lea ecx, [esp + 0x97c]
mov edx, eax
call fcn.004063d0
mov dword [esp], 0
call sub.msvcrt.dll_exit
call fcn.004220d4
mov dword [esp], str.llvm_strip__compatible_with_GNU_strip_n
mov ecx, eax
call fcn.00406510
sub esp, 4
call fcn.0042209e
mov dword [esp], 0
call sub.msvcrt.dll_exit
lea ecx, [esp + 0x28]
call fcn.004110e0