Function at 0x4a6860
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, 0x48
movzx eax, word [r8 + 0x24]
mov rdi, qword [rsp + 0xb0]
and ax, 0x380
mov qword [rsp + 0x90], rcx
mov rbp, rdx
mov r15, r8
cmp ax, 0x180
mov r13, r9
jne 0x4a6e00
mov rax, qword [r8 + 0xe0]
mov rsi, qword [rax + 0xd8]
test rsi, rsi
je 0x4a6e00
mov rcx, qword [r8 + 0xf0]
lea r14, [rsi + 0x10]
mov rdx, r8
mov rax, qword [rcx + 8]
mov rax, qword [rax + 0x368]
call qword [rax + 0x250]
mov ecx, dword [rsi]
mov dword [rsp + 0x30], eax
mov r9, qword [rbp + 0x28]
lea rax, [rcx + rcx*2]
shl rax, 4
add rax, r14
cmp r14, rax
jae 0x4a70d0
mov qword [rsp + 0x98], rbp
mov rbx, r14
mov rbp, r9
nop
cmp dword [rbx + 0x14], 4
je 0x4a6eb0
test byte [rbx + 0x23], 1
jne 0x4a6ccd
cmp qword [rbx], 0
je 0x4a6ccd
test byte [r15 + 0x22], 0x10
mov rdx, qword [rdi]
je 0x4a6931
test rdx, rdx
je 0x4a7018
mov eax, dword [rbx + 0x10]
lea rax, [rax + rax*2]
lea rax, [rdx + rax*8]
cmp rax, qword [rdi + 0x10]
mov qword [rdi + 8], rax
jae 0x4a6951
mov edx, dword [rbx + 0x18]
lea ecx, [rdx + 8]
cmp qword [rax], rcx
je 0x4a6968
lea rcx, str..._.._.._src_binutils_2.32_bfd_elf_eh_frame.c
mov edx, 0x5ed
call fcn.00438d20
mov eax, dword [rbx + 0x18]
lea ecx, [rax + 8]
mov rdx, rdi
call r13
test eax, eax
sete al
movzx eax, al
test eax, eax
je 0x4a6ccb
mov rax, qword [rsp + 0x98]
test byte [rax], 1
je 0x4a69c0
movzx eax, byte [rbx + 0x20]
and eax, 0x70
jne 0x4a6fe8
test byte [rbx + 0x23], 8
jne 0x4a69c0
mov dword [rbp + 0x144], 0
mov eax, dword [0x0057c730]
cmp eax, 9
jle 0x4a7132
cmp eax, 0xa
je 0x4a7093
mov r11, qword [rbx]
and byte [rbx + 0x23], 0xfd
add dword [rbp + 0x140], 1
movzx eax, byte [r11 + 0x23]
test al, 2
je 0x4a7160
test byte [r11 + 0xa], 0x40
mov r12, qword [r11]
jne 0x4a6cc8
and eax, 0xfffffffd
test r12, r12
mov qword [r11], r15
mov byte [r11 + 0x23], al
je 0x4a7160
cmp byte [r12 + 0x50], 0xff
je 0x4a70c0
mov eax, dword [r12 + 0x40]
lea rdx, [rax + rax*2]
mov rax, qword [rdi]
mov qword [r12 + 0x40], 0
lea rax, [rax + rdx*8]
lea rdx, [r12 + 0x40]
mov qword [rsp + 0x20], rdx
mov rdx, qword [rsp + 0x90]
mov rdx, qword [rdx + 0xf0]
cmp byte [rdx + 4], 2
je 0x4a7155
mov rax, qword [rax + 8]
shr rax, 8
mov r8d, eax
mov eax, eax
cmp rax, qword [rdi + 0x28]
jae 0x4a6f60
shl rax, 5
add rax, qword [rdi + 0x18]
movzx edx, byte [rax + 0x14]
shr dl, 4
test dl, dl
jne 0x4a6f60
mov edx, dword [rax + 0x18]
mov qword [rsp + 0x28], r11
mov rcx, qword [rsp + 0x90]
mov dword [rsp + 0x34], r8d
call fcn.0047ff50
mov r11, qword [rsp + 0x28]
test rax, rax
je 0x4a7160
mov rdx, qword [rax + 0xc8]
test rdx, rdx
cmove rdx, rax
cmp qword [rdx + 0x68], 0
je 0x4a7160
mov rax, qword [rsp + 0x90]
mov byte [r12 + 9], 1
mov r8d, dword [rsp + 0x34]
movd xmm0, dword [rax + 0x3c]
movd xmm2, r8d
punpckldq xmm0, xmm2
movq qword [r12 + 0x40], xmm0
mov rax, qword [rsp + 0x98]
test byte [rax], 1
je 0x4a6b30
test byte [r12 + 0x50], 0x70
jne 0x4a6b30
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x28], r11
mov r8, r15
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x90]
mov rax, qword [rax + 8]
mov rax, qword [rax + 0x368]
call qword [rax + 0x258]
mov r11, qword [rsp + 0x28]
test eax, eax
je 0x4a6b30
or byte [r11 + 0xa], 0xc
nop
xor r8d, r8d
mov edx, 4
mov qword [rsp + 0x38], r11
mov rcx, r12
call fcn.004e1b80
lea rcx, [r12 + 8]
mov edx, 1
mov r8d, eax
call fcn.004e1b80
lea rcx, [r12 + 0xa]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x34], eax
call sub.msvcrt.dll_strlen
mov r8d, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x28]
lea rdx, [rax + 1]
call fcn.004e1b80
lea rcx, [r12 + 0x20]
mov edx, 8
mov r8d, eax
call fcn.004e1b80
lea rcx, [r12 + 0x28]
mov edx, 8
mov r8d, eax
call fcn.004e1b80
lea rcx, [r12 + 0x30]
mov edx, 8
mov r8d, eax
call fcn.004e1b80
lea rcx, [r12 + 0x38]
mov edx, 8
mov r8d, eax
call fcn.004e1b80
mov rcx, qword [rsp + 0x20]
mov edx, 8
mov r8d, eax
call fcn.004e1b80
mov edx, 8
mov r8d, eax
mov rax, qword [r12 + 0x48]
mov rcx, qword [rax]
add rcx, 0x68
call fcn.004e1b80
lea rcx, [r12 + 0x50]
mov edx, 1
mov r8d, eax
call fcn.004e1b80
lea rcx, [r12 + 0x51]
mov edx, 1
mov r8d, eax
call fcn.004e1b80
lea rcx, [r12 + 0x52]
mov edx, 1
mov r8d, eax
call fcn.004e1b80
lea rcx, [r12 + 0x53]
mov edx, 1
mov r8d, eax
call fcn.004e1b80
movzx edx, byte [r12 + 0x53]
mov ecx, 0x32
mov r8d, eax
cmp rdx, rcx
cmova rdx, rcx
lea rcx, [r12 + 0x55]
call fcn.004e1b80
mov rcx, qword [rbp + 0x138]
mov r11, qword [rsp + 0x38]
mov r8d, eax
mov dword [r12 + 4], eax
test rcx, rcx
je 0x4a70f0
mov r9d, 1
mov rdx, r12
mov qword [rsp + 0x20], r11
call fcn.004e1740
mov r11, qword [rsp + 0x20]
test rax, rax
je 0x4a7160
mov rdx, qword [rax]
test rdx, rdx
je 0x4a7168
movzx eax, byte [r11 + 0xa]
or byte [r11 + 0x23], 2
or eax, 0x40
mov byte [r11 + 0xa], al
mov r12, qword [rdx + 0x48]
test al, 2
mov qword [r11], r12
je 0x4a6cc8
or byte [r12 + 0xa], 2
nop dword [rax + rax]
mov qword [rbx], r12
mov ecx, dword [rsi]
lea rax, [rcx + rcx*2]
add rbx, 0x30
shl rax, 4
add rax, r14
cmp rbx, rax
jb 0x4a6900
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x4a6d08
call sub.msvcrt.dll_free
mov eax, dword [rsi]
mov qword [rsi + 8], 0
lea rax, [rax + rax*2]
shl rax, 4
add rax, r14
xor ebp, ebp
xor r8d, r8d
cmp r14, rax
mov esi, 1
jae 0x4a70dd
nop dword [rax + rax]
movzx edx, byte [r14 + 0x23]
test dl, 2
jne 0x4a6dc7
mov ecx, dword [r14 + 0x14]
cmp ecx, 4
je 0x4a6ed0
test dl, 1
je 0x4a6ef0
movzx r10d, byte [r14 + 0xa]
test r10b, 0x10
je 0x4a6d88
lea r11d, [r8 + 7]
mov r8d, dword [r14 + 0x18]
and r11d, 0xfffffff8
mov dword [r14 + 0x1c], r11d
cmp r8d, r11d
je 0x4a6da2
shr dl, 2
mov r8d, r11d
mov ebp, 1
mov r9d, edx
and r9d, 1
and r10d, 0x20
jne 0x4a6db8
add ecx, r9d
jmp 0x4a6dc1
add r8d, 3
mov r9d, 1
and r8d, 0xfffffffc
cmp r8d, dword [r14 + 0x18]
mov dword [r14 + 0x1c], r8d
cmovne ebp, r9d
mov r9d, edx
shr r9b, 2
and r9d, 1
and edx, 1
je 0x4a6dc1
and r10d, 0x20
je 0x4a6d7c
lea ecx, [rcx + r9 + 1]
add r9d, 1
add ecx, r9d
add r8d, ecx
add r14, 0x30
cmp r14, rax
jb 0x4a6d20
add r8d, 3
and ebp, 1
and r8d, 0xfffffffc
mov rax, qword [r15 + 0x38]
movq xmm0, r8
movq xmm1, rax
cmp rax, r8
punpcklqdq xmm0, xmm1
movups xmmword [r15 + 0x38], xmm0
jne 0x4a6e18
test bpl, bpl
jne 0x4a6e18
xor eax, eax
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, qword [rdi + 0x28]
xor r12d, r12d
mov rbx, qword [rdi + 0x18]
mov rax, qword [r15 + 0xe0]
shl rsi, 5
add rsi, rbx
add rbx, 0x20
cmp rbx, rsi
mov ebp, dword [rax + 0x88]
jb 0x4a6e51
jmp 0x4a6e9f
add rbx, 0x20
cmp rbx, rsi
jae 0x4a6e80
cmp byte [rbx + 0x14], 1
ja 0x4a6e48
cmp ebp, dword [rbx + 0x18]
jne 0x4a6e48
mov rcx, qword [rbx]
mov rdx, r15
call fcn.004a4fe0
test rax, rax
je 0x4a6e48
add qword [rbx], rax
add rbx, 0x20
mov r12d, 1
cmp rbx, rsi
jb 0x4a6e51
nop
test r12d, r12d
je 0x4a6e9f
mov rax, qword [rsp + 0x90]
mov rdx, qword [rdi + 0x18]
mov rax, qword [rax + 0xf0]
mov qword [rax + 0xa8], rdx
mov eax, 1
jmp 0x4a6e02
cmp qword [r15 + 0x108], 0
movzx eax, byte [rbx + 0x23]
setne dl
add edx, edx
and eax, 0xfffffffd
or eax, edx
mov byte [rbx + 0x23], al
mov ecx, dword [rsi]
jmp 0x4a6ccd
add r8d, 3
and r8d, 0xfffffffc
cmp r8d, dword [r14 + 0x18]
mov dword [r14 + 0x1c], r8d
cmovne ebp, esi
jmp 0x4a6dc4
movzx r9d, byte [r14 + 0x20]
mov r10d, r9d
not r10d
and r10d, 0x60
je 0x4a6fd0
and r9d, 7
je 0x4a6ff8
xor r10d, r10d
cmp r9b, 4
sete r9b
setne r10b
lea r10d, [r10*4 - 8]
movzx r9d, r9b
lea r9d, [r9*4 + 4]
lea r8d, [r8 + r9 - 1]
and r8d, r10d
cmp r8d, dword [r14 + 0x18]
mov dword [r14 + 0x1c], r8d
je 0x4a6fc0
shr dl, 2
mov ebp, 1
mov r9d, edx
and r9d, 1
jmp 0x4a6dc1
sub r8d, dword [rdi + 0x30]
mov rax, qword [rdi + 0x38]
mov rcx, qword [rax + r8*8]
movzx eax, byte [rcx + 0x18]
sub eax, 6
cmp al, 1
ja 0x4a6f8f
nop word [rax + rax]
mov rcx, qword [rcx + 0x28]
movzx eax, byte [rcx + 0x18]
sub eax, 6
cmp al, 1
jbe 0x4a6f80
mov rdx, qword [rsp + 0x98]
xor r8d, r8d
mov qword [r12 + 0x40], rcx
mov qword [rsp + 0x28], r11
call fcn.00495010
mov r11, qword [rsp + 0x28]
test eax, eax
jne 0x4a6adb
jmp 0x4a6b30
shr dl, 2
mov r9d, edx
and r9d, 1
jmp 0x4a6dc1
mov r10d, 0xfffffffc
mov r9d, 4
jmp 0x4a6f32
cmp al, 0x50
je 0x4a699e
jmp 0x4a69c0
mov ebx, dword [rsp + 0x30]
mov r9d, 4
cmp ebx, r9d
cmovae r9d, ebx
mov r10d, r9d
neg r10d
jmp 0x4a6f32
movzx r9d, byte [rbx + 0x20]
mov eax, r9d
not eax
test al, 0x60
je 0x4a71c1
mov edx, r9d
and edx, 7
cmp dl, 3
je 0x4a70ab
test r9b, 4
jne 0x4a71a3
mov eax, dword [rsp + 0x30]
test dl, dl
mov r8d, eax
je 0x4a7061
cmp dl, 2
sete r8b
sete al
movzx eax, al
movzx r8d, r8b
add rax, rax
add r8d, r8d
mov edx, dword [rbx + 0x18]
shr r9b, 3
mov rcx, qword [rsp + 0x90]
and r9d, 1
lea rdx, [rax + rdx + 8]
add rdx, qword [r15 + 0xb0]
call fcn.004a4d00
test rax, rax
setne al
movzx eax, al
jmp 0x4a6976
lea rcx, str.further_warnings_about_FDE_encoding_preventing_.eh_frame_hdr_generation_dropped
call fcn.00438be0
add dword [0x0057c730], 1
jmp 0x4a69c0
mov eax, 4
mov r8d, 4
jmp 0x4a7061
lea rax, [r12 + 0x40]
mov qword [rsp + 0x20], rax
jmp 0x4a6b30
mov rcx, qword [rsi + 8]
test rcx, rcx
jne 0x4a6cee
xor r8d, r8d
xor ebp, ebp
jmp 0x4a6ddf
mov ecx, 1
mov qword [rsp + 0x20], r11
lea r9, [sub.msvcrt.dll_free]
lea r8, [0x004a4ef0]
lea rdx, [0x004a4b20]
call fcn.004e1420
mov r11, qword [rsp + 0x20]
test rax, rax
mov rcx, rax
mov qword [rbp + 0x138], rax
je 0x4a7160
mov r8d, dword [r12 + 4]
jmp 0x4a6c74
mov rdx, qword [rsp + 0x90]
mov r8, r15
lea rcx, str.FDE_encoding_in__pB__pA__prevents_.eh_frame_hdr_table_being_created
call fcn.00438be0
add dword [0x0057c730], 1
jmp 0x4a69c0
mov eax, dword [rax + 0xc]
mov r8d, eax
jmp 0x4a6a51
mov r12, r11
jmp 0x4a6cc8
mov ecx, 0x88
mov qword [rsp + 0x28], rax
call sub.msvcrt.dll_malloc
mov r11, qword [rsp + 0x20]
test rax, rax
mov rcx, rax
je 0x4a7160
mov rdx, r12
mov r8d, 0x88
call sub.msvcrt.dll_memcpy
mov r9, qword [rsp + 0x28]
mov qword [r9], rax
mov r12, qword [rax + 0x48]
jmp 0x4a6cc8
cmp dl, 4
sete r8b
sete al
movzx eax, al
movzx r8d, r8b
shl rax, 3
shl r8d, 3
jmp 0x4a7061
xor eax, eax
xor r8d, r8d
jmp 0x4a7061