Function at 0x4a71a0
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
lea r12, [rsp - 0x258]
cmp r12, qword [r14 + 0x10]
jbe 0x4a87ba
push rbp
mov rbp, rsp
sub rsp, 0x2d0
mov qword [rsp + 0x2e0], rax
mov byte [rsp + 0x2f0], cl
mov qword [rsp + 0x1f0], rax
mov qword [rsp + 0x2e8], rbx
lea rax, [0x004d3c00]
call sym.runtime.newobject
mov qword [rsp + 0x1d8], rax
nop
lea rax, [0x004cd560]
call sym.runtime.newobject
mov rcx, qword [rsp + 0x1f0]
mov qword [rax], rcx
cmp dword [0x005e4940], 0
jne 0x4a7220
mov rdx, qword [rsp + 0x2e8]
jmp 0x4a7230
call sym.runtime.gcWriteBarrier1
mov rdx, qword [rsp + 0x2e8]
mov qword [r11], rdx
mov qword [rsp + 0x1b8], rax
mov qword [rax + 8], rdx
movups xmmword [rax + 0x10], xmm15
movabs r9, 0x7fffffffffffffff
mov qword [rax + 0x20], r9
mov rbx, rax
lea rcx, [0x004ff468]
lea rdi, [0x005e46c0]
lea rsi, [0x004b9da0]
mov r8, qword [rsp + 0x1d8]
lea rax, [0x004fee40]
call sym.encoding_binary.Read
mov rdx, qword [rsp + 0x1d8]
movups xmm0, xmmword [rdx]
movups xmmword [rsp + 0x178], xmm0
movups xmm0, xmmword [rdx + 0x10]
movups xmmword [rsp + 0x188], xmm0
movups xmm0, xmmword [rdx + 0x20]
movups xmmword [rsp + 0x198], xmm0
movups xmm0, xmmword [rdx + 0x30]
movups xmmword [rsp + 0x1a8], xmm0
lea rax, [0x004d4040]
lea rbx, [rsp + 0x178]
call sym.encoding_binary.Size
mov qword [rsp + 0xa0], rax
mov r8, qword [rsp + 0x1d8]
mov edx, dword [r8 + 0x3c]
cmp rax, rdx
jg 0x4a72e6
mov byte [r8 + 0x40], 0
jmp 0x4a732b
lea rdx, [r8 + 0x41]
lea rax, [0x004fee40]
mov rbx, qword [rsp + 0x1b8]
lea rcx, [0x004ff468]
lea rdi, [0x005e46c0]
lea rsi, [0x004bc060]
mov r8, rdx
call sym.encoding_binary.Read
mov r8, qword [rsp + 0x1d8]
mov byte [r8 + 0x40], 1
mov rax, qword [rsp + 0xa0]
cmp byte [r8 + 0x40], 0
je 0x4a738d
movups xmm0, xmmword [r8 + 0x41]
movups xmmword [rsp + 0x138], xmm0
movups xmm0, xmmword [r8 + 0x51]
movups xmmword [rsp + 0x148], xmm0
movups xmm0, xmmword [r8 + 0x61]
movups xmmword [rsp + 0x158], xmm0
movups xmm0, xmmword [r8 + 0x71]
movups xmmword [rsp + 0x168], xmm0
lea rax, [0x004bee20]
lea rbx, [rsp + 0x138]
call sym.encoding_binary.Size
mov rcx, qword [rsp + 0xa0]
add rax, rcx
mov r8, qword [rsp + 0x1d8]
mov ecx, dword [r8 + 0x3c]
cmp rax, rcx
jge 0x4a749e
sub rcx, rax
mov qword [rsp + 0x58], rcx
lea rax, [0x004bd760]
mov rbx, rcx
call sym.runtime.makeslice
mov qword [rsp + 0x1e8], rax
mov qword [rsp + 0x220], rax
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x228], rdx
mov qword [rsp + 0x230], rdx
mov rbx, qword [rsp + 0x1b8]
lea rcx, [0x004ff468]
lea rdi, [0x005e46c0]
lea rsi, [0x004bc3e0]
lea r8, [rsp + 0x220]
lea rax, [0x004fee40]
call sym.encoding_binary.Read
mov dword [rsp + 0x4c], 0x68636952
mov rax, qword [rsp + 0x1e8]
mov rbx, qword [rsp + 0x58]
mov rcx, rbx
lea rdi, [rsp + 0x4c]
mov esi, 4
mov r8, rsi
call sym.bytes.Index
cmp rax, 0xffffffffffffffff
je 0x4a7496
lea rcx, [rax + 8]
mov rdx, qword [rsp + 0x58]
cmp rdx, rcx
jb 0x4a87b4
mov r8, qword [rsp + 0x1d8]
mov qword [r8 + 0x90], rcx
mov qword [r8 + 0x98], rdx
cmp dword [0x005e4940], 0
jne 0x4a7472
mov rdx, qword [rsp + 0x1e8]
jmp 0x4a748d
call sym.runtime.gcWriteBarrier2
mov rdx, qword [rsp + 0x1e8]
mov qword [r11], rdx
mov r9, qword [r8 + 0x88]
mov qword [r11 + 8], r9
mov qword [r8 + 0x88], rdx
jmp 0x4a749e
mov r8, qword [rsp + 0x1d8]
cmp word [r8], 0x5a4d
je 0x4a74ad
xor edx, edx
jmp 0x4a753a
mov ecx, dword [r8 + 0x3c]
mov qword [rsp + 0xb8], rcx
lea rax, [0x004be940]
call sym.runtime.newobject
mov qword [rsp + 0x1f8], rax
mov rcx, qword [rsp + 0x1f0]
mov rdx, qword [rcx + 0x18]
mov rbx, rax
mov edi, 4
mov rsi, qword [rsp + 0xb8]
mov rax, qword [rsp + 0x2e8]
mov rcx, rdi
call rdx
mov rbx, qword [rsp + 0x1f8]
cmp byte [rbx], 0x50
jne 0x4a7756
cmp byte [rbx + 1], 0x45
jne 0x4a7756
cmp byte [rbx + 2], 0
jne 0x4a7756
cmp byte [rbx + 3], 0
nop
jne 0x4a7756
mov rdx, qword [rsp + 0xb8]
add rdx, 4
mov r8, qword [rsp + 0x1d8]
mov qword [rsp + 0x78], rdx
mov rbx, qword [rsp + 0x1b8]
mov r9, qword [rbx + 0x10]
lea r10, [rdx + r9]
cmp r9, r10
jg 0x4a7558
mov qword [rbx + 0x18], r10
lea rdx, [r8 + 0xa0]
mov qword [rsp + 0x1e0], rdx
lea rax, [0x004fee40]
lea rcx, [0x004ff468]
lea rdi, [0x005e46c0]
lea rsi, [0x004b9e20]
mov r8, rdx
call sym.encoding_binary.Read
test rax, rax
jne 0x4a7745
mov rdx, qword [rsp + 0x1d8]
movzx r8d, word [rdx + 0xa0]
cmp r8w, 0x14c
ja 0x4a75c0
test r8w, r8w
je 0x4a75d4
cmp r8w, 0x14c
je 0x4a75d4
jmp 0x4a76e7
cmp r8w, 0x1c4
je 0x4a75d4
cmp r8w, 0x8664
jne 0x4a76e7
movzx r8d, byte [rsp + 0x2f0]
nop dword [rax]
test r8b, r8b
je 0x4a77b6
mov r9, qword [rsp + 0x1b8]
mov r10, qword [r9 + 0x18]
cmp qword [r9 + 0x10], r10
jle 0x4a760d
mov r10, qword [0x00581b40]
mov r11, qword [0x00581b48]
xor eax, eax
jmp 0x4a7620
mov r12, qword [r9 + 0x10]
sub r10, r12
mov rax, r10
xor r11d, r11d
xor r10d, r10d
nop dword [rax]
test r10, r10
je 0x4a7676
movups xmmword [rsp + 0x210], xmm15
je 0x4a7634
mov r10, qword [r10 + 8]
mov qword [rsp + 0x210], r10
mov qword [rsp + 0x218], r11
lea rax, [0x004e0969]
mov ebx, 0x28
lea rcx, [rsp + 0x210]
mov edi, 1
mov rsi, rdi
call sym.fmt.Errorf
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x2d0
pop rbp
ret
mov qword [rsp + 0x50], rax
mov rcx, qword [rdx + 0xa0]
mov qword [rsp + 0xd4], rcx
movups xmm0, xmmword [rdx + 0xa4]
movups xmmword [rsp + 0xd8], xmm0
lea rax, [0x004d03e0]
lea rbx, [rsp + 0xd4]
call sym.encoding_binary.Size
mov rcx, qword [rsp + 0x78]
lea rdx, [rax + rcx]
mov rsi, qword [rsp + 0x1d8]
movzx edi, word [rsi + 0xb0]
add rdx, rdi
mov rbx, qword [rsp + 0x1b8]
mov rdi, qword [rbx + 0x10]
add rdx, rdi
cmp rdi, rdx
jg 0x4a76e0
mov qword [rbx + 0x18], rdx
xor eax, eax
jmp 0x4a86e2
movups xmmword [rsp + 0x210], xmm15
movzx eax, word [rdx + 0xa0]
call sym.runtime.convT16
lea rcx, [0x004bd8a0]
mov qword [rsp + 0x210], rcx
mov qword [rsp + 0x218], rax
lea rax, [0x004e2284]
mov ebx, 0x33
lea rcx, [rsp + 0x210]
mov edi, 1
mov rsi, rdi
call sym.fmt.Errorf
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x2d0
pop rbp
ret
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x2d0
pop rbp
ret
movups xmmword [rsp + 0x210], xmm15
lea rax, [0x004be940]
call sym.runtime.convTnoptr
lea rcx, [0x004be940]
mov qword [rsp + 0x210], rcx
mov qword [rsp + 0x218], rax
lea rax, [0x004dfce0]
mov ebx, 0x24
lea rcx, [rsp + 0x210]
mov edi, 1
mov rsi, rdi
nop
call sym.fmt.Errorf
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x2d0
pop rbp
ret
mov rax, qword [rsp + 0x1e0]
lea rbx, [0x004fefc0]
mov rcx, qword [rsp + 0x1b8]
call sym.github.com_Binject_debug_pe.readStringTable
mov rdx, qword [rsp + 0x1d8]
mov qword [rdx + 0x120], rbx
mov qword [rdx + 0x128], rcx
cmp dword [0x005e4940], 0
je 0x4a7804
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov r8, qword [rdx + 0x118]
mov qword [r11 + 8], r8
mov qword [rdx + 0x118], rax
test rdi, rdi
jne 0x4a7c12
mov rax, qword [rsp + 0x1e0]
lea rbx, [0x004fefc0]
mov rcx, qword [rsp + 0x1b8]
call sym.github.com_Binject_debug_pe.readCOFFSymbols
mov rdx, qword [rsp + 0x1d8]
mov qword [rdx + 0x108], rbx
mov qword [rdx + 0x110], rcx
cmp dword [0x005e4940], 0
je 0x4a7862
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov r9, qword [rdx + 0x100]
mov qword [r11 + 8], r9
mov qword [rdx + 0x100], rax
test rdi, rdi
jne 0x4a7c01
mov rdi, qword [rdx + 0x118]
mov rsi, qword [rdx + 0x120]
mov r8, qword [rdx + 0x128]
call sym.github.com_Binject_debug_pe.removeAuxSymbols
mov rdx, qword [rsp + 0x1d8]
mov qword [rdx + 0xf0], rbx
mov qword [rdx + 0xf8], rcx
cmp dword [0x005e4940], 0
je 0x4a78be
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov r8, qword [rdx + 0xe8]
mov qword [r11 + 8], r8
mov qword [rdx + 0xe8], rax
test rdi, rdi
jne 0x4a7bf0
mov rcx, qword [rdx + 0xa0]
mov qword [rsp + 0xc0], rcx
movups xmm0, xmmword [rdx + 0xa4]
movups xmmword [rsp + 0xc4], xmm0
lea rax, [0x004d03e0]
lea rbx, [rsp + 0xc0]
nop dword [rax + rax]
call sym.encoding_binary.Size
mov rcx, qword [rsp + 0x78]
add rcx, rax
mov rdx, qword [rsp + 0x1d8]
mov qword [rdx + 0x148], rcx
mov rsi, qword [rsp + 0x1b8]
mov rdi, qword [rsi + 0x10]
add rcx, rdi
nop
cmp rdi, rcx
jg 0x4a7935
mov qword [rsi + 0x18], rcx
lea rax, [0x004d55e0]
nop dword [rax]
call sym.runtime.newobject
mov qword [rsp + 0x208], rax
lea rax, [0x004d52a0]
call sym.runtime.newobject
mov rcx, qword [rsp + 0x1d8]
movzx edx, word [rcx + 0xb0]
cmp word [0x005e46e0], dx
je 0x4a7a90
nop word [rax + rax]
nop
cmp word [0x005e46e2], dx
jne 0x4a7b22
mov qword [rsp + 0x200], rax
mov rbx, qword [rsp + 0x1b8]
lea rcx, [0x004ff468]
lea rdi, [0x005e46c0]
lea rsi, [0x004ba0a0]
mov r8, rax
lea rax, [0x004fee40]
nop dword [rax]
call sym.encoding_binary.Read
test rax, rax
jne 0x4a7a7f
mov rdx, qword [rsp + 0x200]
cmp word [rdx], 0x20b
jne 0x4a7a25
lea rsi, [0x004ba0a0]
mov rdi, qword [rsp + 0x1d8]
mov qword [rdi + 0xb8], rsi
cmp dword [0x005e4940], 0
je 0x4a7a13
nop dword [rax]
call sym.runtime.gcWriteBarrier2
mov qword [r11], rdx
mov r8, qword [rdi + 0xc0]
mov qword [r11 + 8], r8
mov qword [rdi + 0xc0], rdx
mov rcx, rdi
nop dword [rax]
jmp 0x4a7b22
movups xmmword [rsp + 0x210], xmm15
movzx eax, word [rdx]
call sym.runtime.convT16
lea rcx, [0x004bd8a0]
mov qword [rsp + 0x210], rcx
mov qword [rsp + 0x218], rax
lea rax, [0x004e2158]
mov ebx, 0x32
lea rcx, [rsp + 0x210]
mov edi, 1
mov rsi, rdi
call sym.fmt.Errorf
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x2d0
pop rbp
ret
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x2d0
pop rbp
ret
lea rax, [0x004fee40]
mov rbx, qword [rsp + 0x1b8]
lea rcx, [0x004ff468]
lea rdi, [0x005e46c0]
lea rsi, [0x004ba060]
mov r8, qword [rsp + 0x208]
nop dword [rax]
call sym.encoding_binary.Read
test rax, rax
jne 0x4a7bdf
mov rdx, qword [rsp + 0x208]
cmp word [rdx], 0x10b
nop dword [rax + rax]
jne 0x4a7b85
lea rsi, [0x004ba060]
mov rdi, qword [rsp + 0x1d8]
mov qword [rdi + 0xb8], rsi
cmp dword [0x005e4940], 0
je 0x4a7b18
call sym.runtime.gcWriteBarrier2
mov qword [r11], rdx
mov r8, qword [rdi + 0xc0]
mov qword [r11 + 8], r8
mov qword [rdi + 0xc0], rdx
mov rcx, rdi
movzx ebx, word [rcx + 0xa2]
lea rax, [0x004c68e0]
mov rcx, rbx
call sym.runtime.makeslice
mov rdx, qword [rsp + 0x1d8]
movzx esi, word [rdx + 0xa2]
mov qword [rdx + 0xd0], rsi
mov qword [rdx + 0xd8], rsi
cmp dword [0x005e4940], 0
je 0x4a7b73
nop
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov r9, qword [rdx + 0xc8]
mov qword [r11 + 8], r9
mov qword [rdx + 0xc8], rax
xor eax, eax
nop dword [rax]
jmp 0x4a7c30
movups xmmword [rsp + 0x210], xmm15
movzx eax, word [rdx]
call sym.runtime.convT16
lea rcx, [0x004bd8a0]
mov qword [rsp + 0x210], rcx
mov qword [rsp + 0x218], rax
lea rax, [0x004e1f0c]
mov ebx, 0x31
lea rcx, [rsp + 0x210]
mov edi, 1
mov rsi, rdi
call sym.fmt.Errorf
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x2d0
pop rbp
ret
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x2d0
pop rbp
ret
xor eax, eax
mov rbx, rdi
mov rcx, rsi
add rsp, 0x2d0
pop rbp
ret
xor eax, eax
mov rbx, rdi
mov rcx, rsi
add rsp, 0x2d0
pop rbp
ret
xor eax, eax
mov rbx, rdi
mov rcx, rsi
add rsp, 0x2d0
pop rbp
ret
mov qword [r11 + r9*8], rdx
inc r9
mov rdx, rax
mov rax, r9
movzx r9d, word [rdx + 0xa2]
nop dword [rax + rax]
cmp rax, r9
jge 0x4a80ac
mov qword [rsp + 0x90], rax
movups xmmword [rsp + 0xe8], xmm15
movups xmmword [rsp + 0xf0], xmm15
movups xmmword [rsp + 0x100], xmm15
lea rax, [0x004fee40]
mov rbx, qword [rsp + 0x1b8]
lea rcx, [0x004ff468]
lea rdi, [0x005e46c0]
lea rsi, [0x004c13a0]
lea r8, [rsp + 0xe8]
call sym.encoding_binary.Read
nop dword [rax]
test rax, rax
jne 0x4a809b
mov rdx, qword [rsp + 0x1d8]
mov rbx, qword [rdx + 0x118]
mov rcx, qword [rdx + 0x120]
mov rdi, qword [rdx + 0x128]
lea rax, [rsp + 0xe8]
call sym.github.com_Binject_debug_pe._SectionHeader32_.fullName
test rcx, rcx
jne 0x4a808a
mov qword [rsp + 0x1d0], rax
mov qword [rsp + 0x80], rbx
lea rax, [0x004ce420]
call sym.runtime.newobject
mov qword [rsp + 0x1c0], rax
movups xmmword [rsp + 0x298], xmm15
movups xmmword [rsp + 0x2a0], xmm15
movups xmmword [rsp + 0x2b0], xmm15
movups xmmword [rsp + 0x2c0], xmm15
mov rcx, qword [rsp + 0x1d0]
mov qword [rsp + 0x298], rcx
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x2a0], rcx
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x2a8], rcx
mov ecx, dword [rsp + 0xf0]
mov dword [rsp + 0x2b0], ecx
mov ecx, dword [rsp + 0xf4]
mov dword [rsp + 0x2b4], ecx
mov ecx, dword [rsp + 0xf8]
mov dword [rsp + 0x2b8], ecx
mov ecx, dword [rsp + 0xfc]
mov dword [rsp + 0x2bc], ecx
mov ecx, dword [rsp + 0x100]
mov dword [rsp + 0x2c0], ecx
mov ecx, dword [rsp + 0x104]
mov dword [rsp + 0x2c4], ecx
movzx ecx, word [rsp + 0x108]
mov word [rsp + 0x2c8], cx
movzx ecx, word [rsp + 0x10a]
mov word [rsp + 0x2ca], cx
mov ecx, dword [rsp + 0x10c]
mov dword [rsp + 0x2cc], ecx
cmp dword [0x005e4940], 0
je 0x4a7dfe
mov rbx, rax
lea rcx, [rsp + 0x298]
lea rax, [0x004d1be0]
call sym.runtime.wbMove
mov rax, qword [rsp + 0x1c0]
mov rcx, qword [rsp + 0x298]
mov qword [rax], rcx
movups xmm0, xmmword [rsp + 0x2a0]
movups xmmword [rax + 8], xmm0
movups xmm0, xmmword [rsp + 0x2b0]
movups xmmword [rax + 0x18], xmm0
movups xmm0, xmmword [rsp + 0x2c0]
movups xmmword [rax + 0x28], xmm0
cmp dword [rsp + 0xfc], 0
mov rcx, qword [rsp + 0x2e8]
lea rdx, [0x005e46c0]
cmove rcx, rdx
mov qword [rsp + 0x1c8], rcx
mov rsi, qword [rsp + 0x1f0]
lea rdi, [0x004fee60]
cmove rsi, rdi
mov qword [rsp + 0x70], rsi
movzx r9d, byte [rsp + 0x2f0]
test r9b, r9b
je 0x4a7f46
mov ecx, dword [rax + 0x1c]
mov qword [rsp + 0xb8], rcx
mov edx, dword [rax + 0x20]
movabs rbx, 0x7fffffffffffffff
sub rbx, rdx
mov qword [rsp + 0xb0], rbx
add rdx, rcx
mov qword [rsp + 0x60], rdx
lea rax, [0x004cd560]
call sym.runtime.newobject
mov rcx, qword [rsp + 0x70]
mov qword [rax], rcx
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
cmp rcx, rdx
movabs rdx, 0x7fffffffffffffff
mov rbx, qword [rsp + 0x60]
cmovle rdx, rbx
cmp dword [0x005e4940], 0
jne 0x4a7ef2
mov r9, qword [rsp + 0x1c8]
jmp 0x4a7f02
call sym.runtime.gcWriteBarrier1
mov r9, qword [rsp + 0x1c8]
mov qword [r11], r9
mov qword [rax + 8], r9
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rcx
mov qword [rax + 0x20], rdx
cmp dword [0x005e4940], 0
jne 0x4a7f25
mov rdx, qword [rsp + 0x1c0]
jmp 0x4a7f3d
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rdx, qword [rsp + 0x1c0]
mov r9, qword [rdx + 0x60]
mov qword [r11 + 8], r9
mov qword [rdx + 0x60], rax
jmp 0x4a800f
mov ecx, dword [rax + 0x24]
mov qword [rsp + 0xb8], rcx
mov edx, dword [rax + 0x20]
movabs rbx, 0x7fffffffffffffff
sub rbx, rdx
mov qword [rsp + 0xb0], rbx
add rdx, rcx
mov qword [rsp + 0x68], rdx
lea rax, [0x004cd560]
call sym.runtime.newobject
mov rcx, qword [rsp + 0x70]
mov qword [rax], rcx
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
cmp rcx, rdx
movabs rdx, 0x7fffffffffffffff
mov rbx, qword [rsp + 0x68]
cmovle rdx, rbx
cmp dword [0x005e4940], 0
jne 0x4a7fc0
mov r9, qword [rsp + 0x1c8]
jmp 0x4a7fd0
call sym.runtime.gcWriteBarrier1
mov r9, qword [rsp + 0x1c8]
mov qword [r11], r9
mov qword [rax + 8], r9
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], rcx
mov qword [rax + 0x20], rdx
cmp dword [0x005e4940], 0
jne 0x4a7ff3
mov rdx, qword [rsp + 0x1c0]
jmp 0x4a800b
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rdx, qword [rsp + 0x1c0]
mov r9, qword [rdx + 0x60]
mov qword [r11 + 8], r9
mov qword [rdx + 0x60], rax
mov r9, qword [rdx + 0x60]
lea r10, [0x004fee80]
mov qword [rdx + 0x50], r10
cmp dword [0x005e4940], 0
je 0x4a8037
call sym.runtime.gcWriteBarrier2
mov qword [r11], r9
mov r12, qword [rdx + 0x58]
mov qword [r11 + 8], r12
mov qword [rdx + 0x58], r9
mov rax, qword [rsp + 0x1d8]
mov rcx, qword [rax + 0xd0]
mov r9, qword [rsp + 0x90]
cmp r9, rcx
jae 0x4a86bf
mov r11, qword [rax + 0xc8]
cmp dword [0x005e4940], 0
je 0x4a7c23
mov rcx, r11
call sym.runtime.gcWriteBarrier2
mov qword [r11], rdx
mov r12, qword [rcx + r9*8]
mov qword [r11 + 8], r12
mov r11, rcx
jmp 0x4a7c23
xor eax, eax
mov rbx, rcx
mov rcx, rdi
add rsp, 0x2d0
pop rbp
ret
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x2d0
pop rbp
ret
mov rsi, qword [rdx + 0xd0]
mov qword [rsp + 0xa8], rsi
mov rcx, qword [rsp + 0x1b8]
xor eax, eax
jmp 0x4a80e0
lea rax, [r9 + 1]
mov rsi, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x1b8]
nop dword [rax + rax]
cmp rax, rsi
jge 0x4a8187
mov rdi, qword [rdx + 0xd0]
cmp rax, rdi
jae 0x4a86b7
mov qword [rsp + 0x88], rax
mov rsi, qword [rdx + 0xc8]
mov rsi, qword [rsi + rax*8]
test byte [rsi], al
lea rbx, [0x004fefc0]
mov rax, rsi
call sym.github.com_Binject_debug_pe.readRelocs
mov rdx, qword [rsp + 0x1d8]
mov r8, qword [rdx + 0xd0]
mov r9, qword [rsp + 0x88]
cmp r9, r8
jae 0x4a86ac
mov r8, qword [rdx + 0xc8]
mov r8, qword [r8 + r9*8]
mov qword [r8 + 0x40], rbx
mov qword [r8 + 0x48], rcx
cmp dword [0x005e4940], 0
je 0x4a8169
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov r10, qword [r8 + 0x38]
mov qword [r11 + 8], r10
mov qword [r8 + 0x38], rax
test rdi, rdi
je 0x4a80c7
xor eax, eax
mov rbx, rdi
mov rcx, rsi
add rsp, 0x2d0
pop rbp
ret
mov rax, rdx
call sym.github.com_Binject_debug_pe._File_.readBaseRelocationTable
cmp dword [0x005e4940], 0
jne 0x4a81a2
mov rdx, qword [rsp + 0x1d8]
jmp 0x4a81bd
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov rdx, qword [rsp + 0x1d8]
mov rsi, qword [rdx + 0xe0]
mov qword [r11 + 8], rsi
mov qword [rdx + 0xe0], rax
test rbx, rbx
jne 0x4a8396
movzx esi, byte [rsp + 0x2f0]
test sil, sil
jne 0x4a823b
mov rax, rdx
lea rbx, [0x004fefc0]
mov rcx, qword [rsp + 0x1b8]
call sym.github.com_Binject_debug_pe.readCertTable
mov rdx, qword [rsp + 0x1d8]
mov qword [rdx + 0x138], rbx
mov qword [rdx + 0x140], rcx
cmp dword [0x005e4940], 0
je 0x4a8223
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov r8, qword [rdx + 0x130]
mov qword [r11 + 8], r8
mov qword [rdx + 0x130], rax
test rdi, rdi
jne 0x4a8385
movzx esi, byte [rsp + 0x2f0]
mov rdi, qword [rdx + 0xb8]
test rdi, rdi
je 0x4a83a1
mov r8d, dword [rdi + 0x10]
mov r9, qword [rdx + 0xc0]
cmp r8d, 0x4dde60f4
jne 0x4a8286
lea r10, [0x004ba060]
cmp rdi, r10
jne 0x4a83a1
cmp dword [r9 + 0xd0], 0
je 0x4a83a1
cmp r8d, 0x4dde60f4
jmp 0x4a82c5
cmp r8d, 0xa4cbac8d
jne 0x4a83a1
lea r10, [0x004ba0a0]
nop word [rax + rax]
cmp rdi, r10
jne 0x4a83a1
cmp dword [r9 + 0xe0], 0
je 0x4a83a1
cmp r8d, 0x4dde60f4
lea r10, [0x004ba060]
jne 0x4a82e0
cmp rdi, r10
jne 0x4a8305
mov edi, dword [r9 + 0xd0]
mov r8d, dword [r9 + 0xd4]
jmp 0x4a830a
cmp r8d, 0xa4cbac8d
jne 0x4a8305
lea r8, [0x004ba0a0]
cmp rdi, r8
jne 0x4a8305
mov edi, dword [r9 + 0xe0]
mov r8d, dword [r9 + 0xe4]
jmp 0x4a830a
xor r8d, r8d
xor edi, edi
mov dword [rsp + 0x48], r8d
mov dword [rsp + 0x44], edi
lea rax, [0x004bd760]
mov ebx, r8d
mov ecx, ebx
nop
call sym.runtime.makeslice
mov qword [rsp + 0x1e8], rax
movzx edx, byte [rsp + 0x2f0]
test dl, dl
jne 0x4a835d
mov r8, qword [rsp + 0x1d8]
mov r9, qword [r8 + 0xc8]
mov r10, qword [r8 + 0xd0]
mov r11d, dword [rsp + 0x44]
xor ecx, ecx
xor ebx, ebx
jmp 0x4a8658
mov rdx, qword [rsp + 0x1f0]
mov r8, qword [rdx + 0x18]
mov rbx, rax
mov ecx, dword [rsp + 0x48]
mov edi, ecx
mov esi, dword [rsp + 0x44]
mov rax, qword [rsp + 0x2e8]
nop
call r8
jmp 0x4a83b1
xor eax, eax
mov rbx, rdi
mov rcx, rsi
add rsp, 0x2d0
pop rbp
ret
xor eax, eax
add rsp, 0x2d0
pop rbp
ret
mov rax, rdx
xor ebx, ebx
xor ecx, ecx
add rsp, 0x2d0
pop rbp
ret
lea rax, [0x004ca3e0]
call sym.runtime.newobject
mov ecx, dword [rsp + 0x48]
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rcx
cmp dword [0x005e4940], 0
jne 0x4a83e0
mov rdx, qword [rsp + 0x1e8]
jmp 0x4a83f0
call sym.runtime.gcWriteBarrier1
mov rdx, qword [rsp + 0x1e8]
mov qword [r11], rdx
mov qword [rax], rdx
mov qword [rax + 0x18], 0
mov qword [rax + 0x20], 0xffffffffffffffff
mov r8, qword [rsp + 0x1d8]
lea rdx, [r8 + 0x170]
mov rbx, rax
lea rcx, [0x004ff468]
lea rdi, [0x005e46c0]
lea rsi, [0x004b9fa0]
lea rax, [0x004feea0]
mov r8, rdx
call sym.encoding_binary.Read
mov rdx, qword [rsp + 0x1d8]
mov ecx, dword [rdx + 0x17c]
lea rax, [0x004bd760]
mov rbx, rcx
call sym.runtime.makeslice
mov qword [rsp + 0x1e8], rax
mov rdx, qword [rsp + 0x1d8]
mov edi, dword [rdx + 0x17c]
mov qword [rsp + 0xa8], rdi
movzx r9d, byte [rsp + 0x2f0]
nop dword [rax]
test r9b, r9b
jne 0x4a84a5
mov r8d, dword [rdx + 0x178]
mov r9, qword [rdx + 0xc8]
mov r10, qword [rdx + 0xd0]
xor ecx, ecx
xor ebx, ebx
nop
jmp 0x4a8608
mov r8, qword [rsp + 0x1f0]
mov r8, qword [r8 + 0x18]
mov esi, dword [rdx + 0x178]
mov rbx, rax
mov rcx, rdi
mov rax, qword [rsp + 0x2e8]
call r8
lea rax, [0x004ca3e0]
call sym.runtime.newobject
mov rcx, qword [rsp + 0xa8]
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rcx
cmp dword [0x005e4940], 0
jne 0x4a84f7
mov rcx, qword [rsp + 0x1e8]
jmp 0x4a8507
call sym.runtime.gcWriteBarrier1
mov rcx, qword [rsp + 0x1e8]
mov qword [r11], rcx
mov qword [rax], rcx
mov qword [rax + 0x18], 0
mov qword [rax + 0x20], 0xffffffffffffffff
movups xmmword [rsp + 0x268], xmm15
movups xmmword [rsp + 0x278], xmm15
movups xmmword [rsp + 0x288], xmm15
mov rbx, rax
lea rax, [0x004feea0]
nop
call sym.github.com_Binject_debug_pe.newMetadataHeader
movups xmm0, xmmword [rsp]
movups xmmword [rsp + 0x268], xmm0
movups xmm0, xmmword [rsp + 0x10]
movups xmmword [rsp + 0x278], xmm0
movups xmm0, xmmword [rsp + 0x20]
movups xmmword [rsp + 0x288], xmm0
movups xmm0, xmmword [rsp + 0x268]
movups xmmword [rsp + 0x238], xmm0
movups xmm0, xmmword [rsp + 0x278]
movups xmmword [rsp + 0x248], xmm0
movups xmm0, xmmword [rsp + 0x288]
movups xmmword [rsp + 0x258], xmm0
cmp dword [0x005e4940], 0
je 0x4a85ca
mov rbx, qword [rsp + 0x1d8]
lea rdx, [rbx + 0x1b8]
lea rax, [0x004d0aa0]
lea rcx, [rsp + 0x238]
mov rbx, rdx
call sym.runtime.wbMove
movups xmm0, xmmword [rsp + 0x238]
mov rdx, qword [rsp + 0x1d8]
movups xmmword [rdx + 0x1b8], xmm0
movups xmm0, xmmword [rsp + 0x248]
movups xmmword [rdx + 0x1c8], xmm0
movups xmm0, xmmword [rsp + 0x258]
movups xmmword [rdx + 0x1d8], xmm0
nop
jmp 0x4a83a1
inc rcx
cmp rcx, r10
jge 0x4a8632
mov r11, qword [r9 + rcx*8]
mov r12d, dword [r11 + 0x1c]
cmp r12d, r8d
ja 0x4a8605
mov r13d, dword [r11 + 0x20]
add r13d, r12d
cmp r8d, r13d
ja 0x4a8605
mov ebx, r8d
sub ebx, r12d
add ebx, dword [r11 + 0x24]
jmp 0x4a8605
mov rdx, qword [rsp + 0x1f0]
mov rdx, qword [rdx + 0x18]
mov esi, ebx
mov rbx, rax
mov rcx, rdi
mov rax, qword [rsp + 0x2e8]
call rdx
jmp 0x4a84c8
inc rcx
cmp rcx, r10
jge 0x4a8685
mov r12, qword [r9 + rcx*8]
mov r13d, dword [r12 + 0x1c]
cmp r11d, r13d
jb 0x4a8655
mov r15d, dword [r12 + 0x20]
add r15d, r13d
cmp r11d, r15d
ja 0x4a8655
mov ebx, r11d
sub ebx, r13d
add ebx, dword [r12 + 0x24]
jmp 0x4a8655
mov rdx, qword [rsp + 0x1f0]
mov r8, qword [rdx + 0x18]
mov esi, ebx
mov rbx, rax
mov ecx, dword [rsp + 0x48]
mov edi, ecx
mov rax, qword [rsp + 0x2e8]
call r8
jmp 0x4a83b1
mov rax, r9
mov rcx, r8
call sym.runtime.panicIndex
mov rcx, rdi
call sym.runtime.panicIndex
mov rax, r9
call sym.runtime.panicIndex
mov rax, qword [rsp + 0x98]
inc rax
mov rcx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x1b8]
mov rsi, r9
movzx edx, word [rsi + 0xa2]
cmp rax, rdx
jge 0x4a8796
mov qword [rsp + 0x98], rax
movups xmmword [rsp + 0x110], xmm15
movups xmmword [rsp + 0x118], xmm15
movups xmmword [rsp + 0x128], xmm15
lea rax, [0x004fee40]
lea rcx, [0x004ff468]
lea rdi, [0x005e46c0]
lea rsi, [0x004c13a0]
lea r8, [rsp + 0x110]
call sym.encoding_binary.Read
nop
test rax, rax
jne 0x4a8785
mov edx, dword [rsp + 0x124]
mov r9, qword [rsp + 0x1d8]
nop word [rax + rax]
nop dword [rax]
cmp dword [r9 + 0xa8], edx
jne 0x4a86c7
mov edx, dword [rsp + 0x11c]
mov dword [r9 + 0xa8], edx
nop dword [rax + rax]
jmp 0x4a86c7
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x2d0
pop rbp
ret
mov rdx, qword [rbx + 0x10]
mov rdi, qword [rsp + 0x50]
add rdi, rdx
cmp rdx, rdi
jg 0x4a77b6
mov qword [rbx + 0x18], rdi
jmp 0x4a77b6
call sym.runtime.panicSliceAcap
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov byte [rsp + 0x18], cl
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
movzx ecx, byte [rsp + 0x18]
nop dword [rax]
jmp sym.github.com_Binject_debug_pe.newFileInternal