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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
test rdx, rdx
mov rsi, rcx
mov rbx, rdx
mov r14d, r8d
mov r13d, r9d
je 0x408c85
mov rax, qword [0x00482000]
mov edx, dword [rdx]
mov rcx, qword [rax]
call fcn.0042d940
lea rcx, [rsp + 0x80]
mov rdi, rax
mov edx, eax
mov r8d, 1
mov r15, rax
shr rdi, 0x20
call fcn.00412580
lea rcx, [rsp + 0xa0]
mov r8d, 2
mov edx, edi
mov ebp, dword [rsp + 0x88]
call fcn.00412580
mov edx, dword [rbx]
lea rcx, [rsp + 0xc0]
xor r8d, r8d
mov r12d, dword [rsp + 0xa8]
call fcn.00412580
mov rax, qword [rsp + 0x80]
cmp rax, qword [rsi + 0x18]
je 0x4087a2
xor eax, eax
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp rax, qword [rsp + 0xa0]
jne 0x40878c
mov r8d, dword [rbx + 4]
mov edx, dword [rsp + 0xc8]
test r8d, r8d
mov dword [rsp + 0x34], edx
jne 0x4087f0
cmp rax, qword [rsp + 0xc0]
jne 0x40878c
mov rax, qword [rsi + 0x80]
test rax, rax
je 0x4087f0
mov ecx, dword [rax + 4]
test ecx, ecx
je 0x4087f0
mov edx, dword [rsi + 0x10]
mov ecx, dword [rbx]
call fcn.004082c0
test al, al
je 0x40878c
mov r8d, dword [rbx + 4]
nop
mov rax, qword [rbx + 8]
mov rdx, qword [rsp + 0x88]
mov dword [rsp + 0x38], r8d
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x8c]
mov qword [rsp + 0x68], rdx
mov rdx, qword [rsp + 0x98]
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x60]
mov rcx, rax
mov qword [rsp + 0x28], rax
call fcn.004126c0
mov edx, dword [rsp + 0xac]
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x28]
mov dword [rsp + 0x44], edx
mov rdx, qword [rsp + 0xa8]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x68], rdx
mov rdx, qword [rsp + 0xb8]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
call fcn.004126c0
mov edx, dword [rsp + 0xcc]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x28]
mov dword [rsp + 0x4c], edx
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x68], rdx
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
call fcn.004126c0
cmp r12d, ebp
mov dword [rsp + 0x28], eax
mov r8d, dword [rsp + 0x38]
jge 0x4089b0
mov rax, qword [rsi + 0x80]
test rax, rax
je 0x408912
mov edx, dword [rax + 4]
test edx, edx
jne 0x40878c
mov eax, dword [rsp + 0x28]
mov edi, dword [rsp + 0x4c]
mov r10d, dword [rsp + 0x34]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x44], edi
mov r9d, r10d
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x3c], edi
test r13b, r13b
je 0x4089f0
mov rax, qword [rsi + 0x90]
test rax, rax
je 0x40878c
mov edx, dword [rax + 4]
test edx, edx
jle 0x40878c
lea rcx, [rax + 8]
sub edx, 1
lea rdx, [rax + rdx*8 + 0x10]
mov rax, rcx
jmp 0x40897d
add rax, 8
cmp rdx, rax
je 0x40878c
cmp dword [rax], ebp
ja 0x408970
cmp dword [rax + 4], ebp
jb 0x408970
mov rax, rcx
nop dword [rax]
cmp dword [rax], r12d
ja 0x40899f
cmp dword [rax + 4], r12d
jae 0x408a7b
add rax, 8
cmp rdx, rax
jne 0x408990
jmp 0x40878c
mov edx, dword [rsi + 0x10]
mov ecx, r15d
mov dword [rsp + 0x38], r8d
call fcn.004082c0
test al, al
mov r8d, dword [rsp + 0x38]
je 0x4088fb
mov edx, dword [rsi + 0x10]
mov ecx, edi
call fcn.004082c0
test al, al
mov r8d, dword [rsp + 0x38]
je 0x4088fb
mov r9d, r12d
mov r10d, ebp
jmp 0x408932
mov rbx, qword [rsi + 0x80]
test rbx, rbx
je 0x408b58
mov eax, dword [rbx]
mov edi, dword [rbx + 4]
and eax, 0x7fffffff
cmp eax, edi
je 0x408aab
lea eax, [rdi + 1]
mov esi, dword [rsp + 0x3c]
mov dword [rbx + 4], eax
lea rax, [rdi*8]
sub rax, rdi
lea rax, [rbx + rax*8 + 8]
mov dword [rax + 4], esi
mov esi, dword [rsp + 0x40]
mov dword [rax], r10d
mov dword [rax + 0xc], r9d
mov dword [rax + 0x18], r8d
mov dword [rax + 0x28], r14d
mov dword [rax + 8], esi
mov esi, dword [rsp + 0x44]
mov dword [rax + 0x10], esi
mov esi, dword [rsp + 0x48]
mov dword [rax + 0x14], esi
mov esi, dword [rsp + 0x34]
mov dword [rax + 0x1c], esi
mov esi, dword [rsp + 0x4c]
mov dword [rax + 0x20], esi
mov esi, dword [rsp + 0x28]
mov dword [rax + 0x24], esi
mov rsi, qword [rsp + 0x50]
mov qword [rax + 0x30], rsi
mov eax, 1
jmp 0x40878e
mov eax, dword [rbx + 4]
test eax, eax
jne 0x4089f0
mov eax, dword [rsp + 0x34]
nop word [rax + rax]
cmp dword [rcx], eax
ja 0x408a9d
cmp dword [rcx + 4], eax
jae 0x4089f0
add rcx, 8
cmp rdx, rcx
jne 0x408a90
jmp 0x40878c
cmp byte [rbx + 3], 0
js 0x408c66
lea edx, [rdi + 1]
mov ecx, edi
mov dword [rsp + 0x5c], r9d
mov dword [rsp + 0x58], r10d
mov dword [rsp + 0x38], r8d
call fcn.00410830
mov rcx, qword [rsi + 0x80]
mov edx, eax
mov r8d, dword [rsp + 0x38]
lea rax, [rdx*8]
mov rbp, rdx
mov r10d, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x5c]
sub rax, rdx
test rcx, rcx
lea rdx, [rax*8 + 8]
je 0x408c7e
mov edi, dword [rcx + 4]
mov dword [rsp + 0x5c], r9d
mov dword [rsp + 0x58], r10d
and ebp, 0x7fffffff
mov dword [rsp + 0x38], r8d
call fcn.0044fd7c
mov rbx, rax
mov qword [rsi + 0x80], rax
mov eax, dword [rax]
mov r8d, dword [rsp + 0x38]
mov dword [rbx + 4], edi
mov r10d, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x5c]
and eax, 0x80000000
or ebp, eax
mov dword [rbx], ebp
shr ebp, 0x18
and ebp, 0x7f
mov byte [rbx + 3], bpl
jmp 0x408a12
xor edi, edi
xor ebp, ebp
mov eax, 1
cmp eax, 4
mov edx, 4
mov dword [rsp + 0x5c], r9d
cmovae edx, eax
xor ecx, ecx
mov dword [rsp + 0x58], r10d
mov edx, edx
mov dword [rsp + 0x38], r8d
lea rax, [rdx*8]
mov r12, rdx
sub rax, rdx
lea rdx, [rax*8 + 8]
call fcn.0044fd7c
mov r11, rax
mov qword [rsi + 0x80], rax
mov eax, dword [rax]
mov edx, r12d
mov dword [r11 + 4], 0
mov r8d, dword [rsp + 0x38]
and edx, 0x7fffffff
mov r10d, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x5c]
and eax, 0x80000000
or eax, edx
mov dword [r11], eax
shr eax, 0x18
and eax, 0x7f
test bpl, bpl
mov byte [r11 + 3], al
je 0x408c9d
add rbx, 8
test edi, edi
lea rax, [r11 + 8]
je 0x408c5a
lea edx, [rdi - 1]
mov ebp, edi
add rdx, 1
lea rcx, [rdx*8]
sub rcx, rdx
lea rdx, [rax + rcx*8]
nop word [rax + rax]
test rax, rax
je 0x408c4b
mov rsi, qword [rbx]
mov rdi, qword [rbx + 8]
mov qword [rax], rsi
mov qword [rax + 8], rdi
mov rsi, qword [rbx + 0x10]
mov rdi, qword [rbx + 0x18]
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rsi, qword [rbx + 0x20]
mov rdi, qword [rbx + 0x28]
mov qword [rax + 0x20], rsi
mov qword [rax + 0x28], rdi
mov rcx, qword [rbx + 0x30]
mov qword [rax + 0x30], rcx
add rax, 0x38
add rbx, 0x38
cmp rax, rdx
jne 0x408c10
mov edi, ebp
mov dword [r11 + 4], edi
mov rbx, r11
jmp 0x408a12
mov qword [rsi + 0x80], 0
lea eax, [rdi + 1]
mov ebp, 1
jmp 0x408b61
xor edi, edi
jmp 0x408b08
lea r8, str.maybe_add_location_range
lea rcx, str._workdir_repo_gcc_gnu_gcc_diagnostic_show_locus.c
mov edx, 0x403
call fcn.0046d0e0
mov rbx, r11
xor edi, edi
jmp 0x408a12