Function at 0x140021e80
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, 0xc8
mov rbx, rdx
xor edx, edx
mov rsi, rcx
mov r12, r8
mov edi, r9d
call fcn.140054f10
cmp qword [rbx + 0x40], 0
mov ebp, eax
je 0x140021ed0
mov eax, 1
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, r12
mov rcx, rsi
call fcn.1400547a0
mov r13, rax
test rax, rax
je 0x140022032
mov qword [rbx + 0x40], rax
movdqu xmm1, xmmword [rbx]
mov rax, qword [rax + 0xd0]
movups xmmword [rax], xmm1
movdqu xmm2, xmmword [rbx + 0x10]
mov ecx, dword [rbx + 4]
mov rdx, qword [rbx + 8]
movups xmmword [rax + 0x10], xmm2
movdqu xmm3, xmmword [rbx + 0x20]
mov r8, qword [rbx + 0x18]
movups xmmword [rax + 0x20], xmm3
movdqu xmm4, xmmword [rbx + 0x30]
movups xmmword [rax + 0x30], xmm4
movdqu xmm5, xmmword [rbx + 0x40]
mov dword [rax + 0x88], edi
mov dword [rax + 4], ecx
mov qword [rax + 8], rdx
movups xmmword [rax + 0x40], xmm5
mov qword [r13 + 0x80], r8
cmp ecx, 8
je 0x140022270
mov r8, rdx
and r8d, 2
cmp r8, 1
sbb edi, edi
and edi, 0xfffffffd
cmp ecx, 0x11
jne 0x140022568
add edi, 0x2000103
mov ecx, edi
or ecx, 8
test dl, 1
cmove edi, ecx
test dl, 4
je 0x140022280
or edi, 0x10
test dl, 0x10
je 0x140021f91
mov rcx, qword [rbx + 0x38]
or edi, 0x800000
mov dword [r13 + 0xb4], ecx
mov ecx, edi
mov r14, qword [rsi + 0x108]
or ecx, 0x1000000
test dl, 0x20
cmovne edi, ecx
and dh, 2
jne 0x140022298
mov rax, qword [rbx + 8]
mov edx, edi
or dh, 4
test ah, 4
cmovne edi, edx
mov edx, edi
or dh, 0x80
test eax, 0x80000000
cmovne edi, edx
movzx edx, byte [r14 + 7]
cmp dl, 3
je 0x140022358
cmp dl, 9
je 0x140022358
test dl, dl
jne 0x140021ff5
test eax, 0x1000000
je 0x140021ff5
or byte [r14 + 0xd4d], 4
test dil, 1
jne 0x140022006
cmp byte [r12], 0x2e
je 0x140022578
mov rax, qword [rbx + 0x10]
xor edx, edx
or byte [r13 + 0x28], 1
mov rcx, r13
div rbp
movq xmm0, rax
punpcklqdq xmm0, xmm0
movups xmmword [r13 + 0x30], xmm0
mov rdx, qword [rbx + 0x20]
call fcn.140057c60
test al, al
jne 0x140022040
xor eax, eax
jmp 0x140021eb4
mov rax, qword [rbx + 0x30]
mov rcx, rax
neg rcx
and rcx, rax
call fcn.140054620
cmp eax, 0x3e
ja 0x140022032
mov dword [r13 + 0x7c], eax
mov r8d, 0xd
lea rdx, str..gnu.linkonce
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
test eax, eax
jne 0x140022090
mov rax, qword [r13 + 0xd0]
cmp qword [rax + 0xc0], 0
jne 0x140022090
or edi, 0x20000
nop dword [rax + rax]
mov edx, edi
mov rcx, r13
call fcn.140057c50
test al, al
je 0x140022032
mov rax, qword [rsi + 8]
mov rax, qword [rax + 0x380]
mov rax, qword [rax + 0xa0]
test rax, rax
je 0x1400220c2
mov rcx, rbx
call rax
test al, al
je 0x140022032
cmp dword [rbx + 4], 7
je 0x1400228cd
mov r9d, dword [r13 + 0x24]
test r9b, 1
je 0x1400221f8
mov rax, qword [rsi + 0x108]
mov r8d, dword [rax + 0x3c]
mov rcx, qword [rax + 0x58]
test r8d, r8d
je 0x1400221f8
mov rax, rcx
xor r10d, r10d
xor edx, edx
jmp 0x14002211a
cmp dword [rax], 1
jne 0x14002210e
cmp qword [rax + 0x28], 1
sbb r10d, 0xffffffff
add edx, 1
add rax, 0x38
cmp edx, r8d
je 0x140022121
cmp qword [rax + 0x18], 0
je 0x140022100
cmp r10d, 1
jbe 0x140022130
cmp edx, r8d
jae 0x140021eaf
lea rax, [r8*8]
mov r10d, r9d
sub rax, r8
and r10d, 2
lea r8, [rcx + rax*8]
jmp 0x140022166
cmp eax, 7
je 0x140022540
add rcx, 0x38
cmp rcx, r8
je 0x1400221f8
mov eax, dword [rcx]
cmp eax, 1
jne 0x140022150
mov rdx, qword [rbx + 8]
mov r15, rdx
and r15d, 0x400
jne 0x140022159
and edx, 2
je 0x140022159
cmp dword [rbx + 4], 8
je 0x140022966
mov edx, 2
mov rax, qword [rbx + 0x18]
mov r11, qword [rcx + 8]
cmp rax, r11
jb 0x140022159
mov rdi, qword [rbx + 0x20]
add rax, rdi
sub rax, r11
cmp qword [rcx + 0x20], rax
jb 0x140022159
test rdx, rdx
jne 0x140022ae8
mov r14, qword [rbx + 0x10]
mov r11, qword [rcx + 0x10]
mov rax, qword [rcx + 0x18]
test r10d, r10d
jne 0x14002299f
add rax, r14
xor edx, edx
sub rax, r11
div rbp
mov qword [r13 + 0x38], rax
cmp r14, r11
jb 0x140022159
add r14, qword [rbx + 0x20]
add r11, qword [rcx + 0x28]
cmp r11, r14
jb 0x140022159
nop dword [rax]
not r9d
and r9d, 0x40002100
je 0x1400229b1
mov r8d, 0xe
lea rdx, str..gnu.lto_.lto.
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
test eax, eax
jne 0x140021eaf
mov qword [rsp + 0x20], 8
xor r9d, r9d
mov rdx, r13
mov rcx, rsi
lea r8, [rsp + 0xa0]
call fcn.140052d30
test al, al
je 0x140021eaf
movzx edx, byte [rsp + 0xa4]
movzx eax, byte [rsi + 0x46]
and edx, 1
and eax, 0xffffffef
shl edx, 4
or eax, edx
mov byte [rsi + 0x46], al
jmp 0x140021eaf
mov rdi, rdx
shr rdi, 1
and edi, 1
jmp 0x140021f64
mov ecx, edi
or ecx, 0x20
test dil, 2
cmovne edi, ecx
jmp 0x140021f7b
mov r9d, dword [r14 + 0xd30]
test r9d, r9d
je 0x140022378
cmp r9d, 0xffffffff
je 0x140022338
mov r8d, dword [r14 + 0xd34]
xor ecx, ecx
mov r10d, r8d
mov r8d, ecx
nop dword [rax]
lea eax, [r8 + r10]
xor edx, edx
mov rcx, qword [r14 + 0xd28]
div r9d
mov eax, edx
mov r15, qword [rcx + rax*8]
test r15, r15
je 0x140022323
mov rcx, qword [r15 + 0x48]
test rcx, rcx
je 0x1400226b3
mov r11, qword [r15 + 0x20]
cmp r11, 3
jbe 0x1400226b3
shr r11, 2
xor eax, eax
sub r11, 1
jmp 0x14002231e
add rax, 1
cmp rbx, qword [rcx + rax*8]
je 0x1400223d8
cmp rax, r11
jne 0x140022310
add r8d, 1
cmp r8d, r9d
jb 0x1400222c8
mov rax, qword [r13 + 0xd0]
nop dword [rax + rax]
cmp qword [rax + 0xb0], 0
je 0x140022a80
mov r14, qword [rsi + 0x108]
jmp 0x140021faf
test eax, 0x200000
je 0x140021fe6
or byte [r14 + 0xd4d], 0x20
mov rax, qword [rbx + 8]
jmp 0x140021fe6
mov r10d, dword [r14 + 0x2f4]
test r10d, r10d
je 0x14002268a
mov rdx, qword [r14 + 0x50]
mov r11d, r10d
mov qword [rsp + 0x40], rax
xor r15d, r15d
lea r8, [rdx + r11*8]
jmp 0x1400223ad
add rdx, 8
cmp r8, rdx
je 0x140022680
mov rax, qword [rdx]
cmp dword [rax + 4], 0x11
jne 0x1400223a0
mov rcx, qword [rax + 0x20]
cmp rcx, 7
jbe 0x1400223a0
cmp qword [rax + 0x38], 4
jne 0x1400223a0
and ecx, 3
cmp rcx, 1
adc r15d, 0
jmp 0x1400223a0
mov r10d, edx
mov rdx, rcx
test r11, r11
je 0x140022419
nop dword [rax + rax]
mov rax, qword [rdx + 8]
add rdx, 8
test rax, rax
je 0x140022413
mov rax, qword [rax + 0x40]
test rax, rax
je 0x140022413
mov rcx, qword [rax + 0xd0]
cmp qword [rcx + 0xc0], 0
jne 0x140022510
sub r11, 1
jne 0x1400223e8
mov edx, dword [r15 + 0x28]
cmp edx, dword [r14 + 0x2f4]
jae 0x140022032
mov rcx, qword [r14 + 0x50]
mov eax, edx
mov dword [rsp + 0x40], r10d
mov rax, qword [rcx + rax*8]
cmp dword [rax + 4], 2
jne 0x140022032
mov rcx, rsi
call fcn.1400568e0
test al, al
je 0x140022032
mov rax, qword [rsi + 0x108]
mov r9d, dword [r15 + 0x2c]
mov r8d, 1
mov rcx, rsi
lea r11, [rsp + 0xa0]
lea r14, [rax + 0x60]
lea rax, [rsp + 0x7c]
mov qword [rsp + 0x20], r11
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x80]
mov rdx, r14
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x48], r11
call fcn.140047580
test rax, rax
je 0x140022032
mov r8, qword [rsp + 0x48]
mov rdx, r14
xor r9d, r9d
mov rcx, rsi
call fcn.140050a20
mov rdx, rax
test rax, rax
je 0x140022032
mov rax, qword [r13 + 0xd0]
mov r14, qword [rsi + 0x108]
mov r10d, dword [rsp + 0x40]
mov qword [rax + 0xb0], rdx
mov qword [rax + 0xc0], r13
mov rdx, qword [r15 + 0x40]
test rdx, rdx
je 0x1400224fc
mov rdx, qword [rdx + 0xd0]
mov qword [rdx + 0xc0], r13
mov dword [r14 + 0xd34], r10d
jmp 0x140022338
mov rax, qword [r13 + 0xd0]
mov rdx, qword [rcx + 0xb0]
mov qword [rax + 0xb0], rdx
mov rdx, qword [rcx + 0xc0]
mov qword [rax + 0xc0], rdx
mov qword [rcx + 0xc0], r13
jmp 0x1400224e5
mov rdx, qword [rbx + 8]
test dh, 4
je 0x140022159
and edx, 2
je 0x1400226f7
mov r15d, 0x400
jmp 0x140022182
add edi, 0x103
jmp 0x140021f64
mov r8d, 6
lea rdx, [0x1400b54f5]
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
test eax, eax
je 0x1400226a8
mov r8d, 0x15
lea rdx, str..gnu.debuglto_.debug_
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
test eax, eax
je 0x1400226a8
mov r8d, 0x11
lea rdx, [0x1400b5512]
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
test eax, eax
je 0x1400226a8
mov r8d, 7
lea rdx, str..zdebug
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
test eax, eax
je 0x1400226a8
mov r8d, 0x15
lea rdx, str..gnu.build.attributes
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
test eax, eax
je 0x140022b6e
mov r8d, 9
lea rdx, str..note.gnu
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
test eax, eax
je 0x140022b6e
mov r8d, 5
lea rdx, [0x1400b554c]
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
test eax, eax
je 0x14002266f
mov r8d, 5
lea rdx, [0x1400b5552]
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
test eax, eax
je 0x14002266f
lea rdx, str..gdb_index
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
jne 0x140022006
or edi, 0x2000
jmp 0x140022006
mov rax, qword [rsp + 0x40]
test r15d, r15d
jne 0x140022706
mov dword [r14 + 0xd30], 0xffffffff
mov qword [r14 + 0xd28], 0
jmp 0x140022338
or edi, 0x40002000
jmp 0x140022006
mov r8, qword [r15 + 0x40]
mov rdx, rsi
mov qword [rsp + 0x40], rax
lea rcx, str._pB:_group_section__pA_has_no_contents
call fcn.14002dad0
mov rax, qword [rsp + 0x40]
mov ecx, 0x11
mov rdx, qword [rsi + 0x108]
mov rdx, qword [rdx + 0xd28]
mov qword [rdx + rax*8], 0
call fcn.1400578d0
xor eax, eax
jmp 0x140021eb4
cmp dword [rbx + 4], 8
jne 0x140022191
jmp 0x1400221b7
mov dword [r14 + 0xd30], r15d
mov edx, r15d
mov rcx, rsi
shl rdx, 3
mov qword [rsp + 0x50], r11
mov dword [rsp + 0x48], r10d
mov dword [rsp + 0x40], r9d
call fcn.140058ae0
mov qword [r14 + 0xd28], rax
mov r14, qword [rsi + 0x108]
cmp qword [r14 + 0xd28], 0
je 0x140022032
mov dword [rsp + 0x5c], edi
mov rdx, r14
mov rdi, qword [rsp + 0x50]
mov r14, r12
mov dword [rsp + 0x60], ebp
mov r12, rbx
xor r15d, r15d
mov ebx, dword [rsp + 0x40]
jmp 0x14002277d
add r15, 1
cmp rdi, r15
je 0x140022926
mov rax, qword [rdx + 0x50]
mov rbp, qword [rax + r15*8]
cmp dword [rbp + 4], 0x11
jne 0x140022770
mov rax, qword [rbp + 0x20]
cmp rax, 7
jbe 0x140022770
cmp qword [rbp + 0x38], 4
jne 0x140022770
test al, 3
jne 0x140022770
mov edx, r15d
mov rcx, rsi
mov dword [rsp + 0x64], r15d
call fcn.1400568e0
test al, al
je 0x140022032
mov rdx, qword [rsi + 0x108]
mov r8, qword [rbp + 0x20]
mov eax, ebx
mov rdx, qword [rdx + 0xd28]
mov qword [rdx + rax*8], rbp
lea rax, [r8 + r8]
mov qword [rbp + 0x48], 0
mov qword [rsp + 0x50], rax
test r8, r8
js 0x140022b0f
mov rdx, qword [rbp + 0x18]
xor r8d, r8d
mov rcx, rsi
call fcn.140057720
test eax, eax
jne 0x140022b0b
mov rax, qword [rbp + 0x20]
mov rcx, rsi
mov qword [rsp + 0x40], rax
call fcn.1400525b0
test rax, rax
je 0x140022825
mov rcx, qword [rsp + 0x40]
cmp rax, rcx
jb 0x140022c5d
mov rdx, qword [rsp + 0x50]
mov rcx, rsi
call fcn.14003a340
test rax, rax
je 0x140022b04
mov rdx, qword [rsp + 0x40]
mov r8, rsi
mov rcx, rax
mov qword [rsp + 0x68], rax
call fcn.14003af40
cmp qword [rsp + 0x40], rax
mov r9, qword [rsp + 0x68]
jne 0x140022c42
mov rax, qword [rsp + 0x50]
mov r10, qword [rbp + 0x20]
mov qword [rbp + 0x48], r9
mov dword [rsp + 0x40], ebx
add r10, r9
add r9, rax
mov qword [rsp + 0x50], rdi
mov rdi, rsi
mov rbx, r9
mov rsi, r10
mov rax, qword [rdi + 8]
sub rsi, 4
sub rbx, 8
mov rcx, rsi
call qword [rax + 0x88]
cmp rsi, qword [rbp + 0x48]
je 0x140022bee
mov ecx, dword [rsp + 0x48]
cmp eax, ecx
jb 0x140022a97
mov r8d, dword [rsp + 0x64]
mov rdx, rdi
lea rcx, str._pB:_invalid_entry_in_SHT_GROUP_section___u_
call fcn.14002dad0
mov qword [rbx], 0
jmp 0x140022885
cmp qword [rbx + 0x20], 0
je 0x1400220cc
lea r8, [rsp + 0xa0]
mov rdx, r13
mov rcx, rsi
call fcn.140054b90
test al, al
je 0x140022032
mov rax, qword [rbx + 0x30]
mov rdx, qword [rsp + 0xa0]
mov rcx, rsi
mov qword [rsp + 0x20], rax
mov r9, qword [rbx + 0x18]
mov r8, qword [rbx + 0x20]
call fcn.1400897b0
mov rcx, qword [rsp + 0xa0]
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
jmp 0x1400220cc
mov r9d, ebx
mov edi, dword [rsp + 0x5c]
mov rbx, r12
mov ebp, dword [rsp + 0x60]
mov r12, r14
mov r14, rdx
cmp dword [rdx + 0xd30], r9d
je 0x140022ac2
mov dword [rdx + 0xd30], r9d
test r9d, r9d
je 0x140022b34
cmp r9d, 0xffffffff
jne 0x1400222b2
jmp 0x14002232c
mov r14, qword [rbx + 0x10]
mov r11, qword [rcx + 0x10]
cmp r14, r11
jb 0x140022159
mov rdx, r14
sub rdx, r11
cmp eax, 7
je 0x140022989
xor edi, edi
test r15, r15
jne 0x14002298d
mov rdi, qword [rbx + 0x20]
add rdx, rdi
cmp qword [rcx + 0x28], rdx
jb 0x140022159
jmp 0x1400221bf
add rax, qword [rbx + 0x18]
xor edx, edx
sub rax, qword [rcx + 8]
div rbp
jmp 0x1400221d7
lea rax, [rsp + 0x80]
mov rdx, r13
lea r8, [rsp + 0x78]
mov rcx, rsi
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x7c]
lea r9, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x80], 0
call fcn.140054220
mov edx, dword [rsi + 0x40]
test dh, 0x80
je 0x1400229fb
test al, al
jne 0x140022b7e
test dh, 0x40
je 0x140022208
cmp qword [r13 + 0x40], 0
je 0x140022208
mov ecx, dword [rsp + 0x78]
test ecx, ecx
js 0x140022208
cmp qword [rsp + 0xa0], 0
je 0x140022208
test al, al
je 0x140022a52
mov eax, edx
and eax, 0x20000
je 0x140022a45
and edx, 0x400000
cmp edx, 1
sbb eax, eax
add eax, 2
cmp dword [rsp + 0x80], eax
je 0x140022208
mov rdx, r13
mov rcx, rsi
call fcn.140053bf0
test al, al
jne 0x140022208
mov r8, r12
mov rdx, rsi
lea rcx, str._pB:_unable_to_compress_section__s
call fcn.14002dad0
xor eax, eax
jmp 0x140021eb4
mov r8, r13
mov rdx, rsi
lea rcx, str._pB:_no_group_info_for_section__pA
call fcn.14002dad0
jmp 0x140022346
mov rcx, qword [rdi + 0x108]
mov eax, eax
mov rcx, qword [rcx + 0x50]
mov rax, qword [rcx + rax*8]
mov qword [rbx], rax
or qword [rax + 8], 0x200
cmp dword [rax + 4], 0x11
jne 0x140022885
jmp 0x1400228b0
cmp r9d, 0xffffffff
je 0x14002232c
mov r8d, dword [rdx + 0xd34]
test r9d, r9d
jne 0x1400222b9
jmp 0x14002232c
mov r11, qword [rcx + 0x10]
mov r14, qword [rbx + 0x10]
cmp r14, r11
jb 0x140022159
mov rdx, r14
sub rdx, r11
jmp 0x14002298d
xor r9d, r9d
mov qword [rbp + 0x48], r9
mov r8, qword [rbp + 0x20]
mov rdx, rsi
lea rcx, str._pB:_invalid_size_field_in_group_section_header:__llx
call fcn.14002dad0
mov ecx, 0x11
call fcn.1400578d0
mov rdx, qword [rsi + 0x108]
jmp 0x140022770
mov qword [rdx + 0xd28], 0
lea rcx, str._pB:_no_valid_group_sections_found
mov dword [rdx + 0xd30], 0xffffffff
mov rdx, rsi
call fcn.14002dad0
mov ecx, 0x11
call fcn.1400578d0
mov rax, qword [r13 + 0xd0]
jmp 0x140022338
or edi, 0x40000000
mov ebp, 1
jmp 0x140022006
mov rdx, r13
mov rcx, rsi
call fcn.140053cc0
test al, al
je 0x140022c29
test byte [rsi + 0x46], 1
je 0x140022208
cmp byte [r12 + 1], 0x7a
jne 0x140022208
mov rcx, r12
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov rcx, rsi
mov rdx, rax
mov rdi, rax
call fcn.14003a340
mov rbx, rax
test rax, rax
je 0x140022032
mov byte [rax], 0x2e
lea rdx, [r12 + 2]
lea rcx, [rax + 1]
lea r8, [rdi - 1]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov rdx, rbx
mov rcx, r13
call fcn.140056590
jmp 0x140022208
mov rcx, qword [rbp + 0x40]
mov r9, rbx
mov rsi, rdi
xor r8d, r8d
mov ebx, dword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
mov qword [r9], r8
mov rdx, qword [rsi + 0x108]
mov dword [r9], eax
test rcx, rcx
je 0x140022c21
test al, 1
je 0x140022c21
or dword [rcx + 0x24], 0x20000
add ebx, 1
jmp 0x140022770
mov r8, r12
mov rdx, rsi
lea rcx, str._pB:_unable_to_decompress_section__s
call fcn.14002dad0
xor eax, eax
jmp 0x140021eb4
mov rdx, r9
mov rcx, rsi
call fcn.140056520
xor r10d, r10d
mov r8, qword [rbp + 0x20]
mov qword [rbp + 0x48], r10
jmp 0x140022b0f
mov ecx, 0x12
call fcn.1400578d0
xor r11d, r11d
mov r8, qword [rbp + 0x20]
mov qword [rbp + 0x48], r11
jmp 0x140022b0f