Function at 0x96ca60
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, 0x68
mov qword [rdx], 0
mov r12, rcx
mov rdi, rdx
mov rbp, r9
mov dword [rsp + 0xc0], r8d
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x50], 0
call fcn.008f5c30
test eax, eax
mov esi, eax
jne 0x96cddf
cmp byte [0x009d9fa4], 0
mov eax, dword [rsp + 0xc0]
jne 0x96ce10
test eax, 0x40000
je 0x96cdf2
and eax, 0xfffdffff
and eax, 0xfff600e7
mov ecx, 0x2f8
mov dword [rsp + 0xc0], eax
call fcn.008c8150
test rax, rax
mov rbx, rax
je 0x96cdb3
test esi, esi
je 0x96ce35
cmp byte [0x009d9fa4], 0
je 0x96d050
mov ecx, 1
call qword [0x009da010]
test rax, rax
mov rcx, rax
mov qword [rbx + 0x18], rax
je 0x96d058
call qword [0x009da020]
mov eax, dword [rsp + 0xc0]
mov byte [rbx + 0x71], 0x6d
mov rcx, rbx
mov r8d, 1
mov byte [rbx + 0x65], 1
lea rsi, [0x008bd6c0]
mov byte [rbx + 0x6a], 0xff
mov dword [rbx + 0x28], 2
mov dword [rbx + 0x190], 1
and eax, 0x2000000
mov dword [rbx + 0xb4], 0
cmp eax, 1
mov qword [rbx + 0x258], 0
sbb eax, eax
xor edx, edx
xor r9d, r9d
mov word [rbx + 0x194], dx
and eax, 0x100
mov rdx, qword [0x00e9eb60]
mov qword [rbx + 0x260], 0
sub eax, 1
mov dword [rbx + 0x58], eax
lea rax, [rbx + 0x288]
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x88], rdx
mov rdx, qword [0x00e9eb68]
mov qword [rbx + 0x268], 0
mov qword [rbx + 0x210], 0
mov qword [rbx + 0x90], rdx
mov rdx, qword [0x00e9eb70]
mov qword [rbx + 0x98], rdx
mov rdx, qword [0x00e9eb78]
mov qword [rbx + 0xa0], rdx
mov rdx, qword [0x00e9eb80]
mov qword [rbx + 0xa8], rdx
mov edx, dword [0x00e9eb88]
mov dword [rbx + 0xb0], edx
mov rax, qword [0x009da0c8]
lea rdx, str.BINARY
mov dword [rbx + 0x74], 0
mov qword [rbx + 0x40], rax
lea rax, [0x009d9f60]
mov qword [rbx + 0xd0], rax
mov eax, 0xe00480e0
or qword [rbx + 0x30], rax
mov qword [rbx + 0x218], 0
mov qword [rbx + 0x220], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rsi
call fcn.008e6740
xor r9d, r9d
mov rcx, rbx
mov qword [rsp + 0x20], rsi
lea rdx, str.BINARY
mov r8d, 3
mov qword [rsp + 0x28], 0
call fcn.008e6740
xor r9d, r9d
mov rcx, rbx
mov qword [rsp + 0x20], rsi
lea rdx, str.BINARY
mov r8d, 2
mov qword [rsp + 0x28], 0
call fcn.008e6740
lea rax, [0x008c0250]
xor r9d, r9d
mov r8d, 1
lea rdx, str.NOCASE
mov rcx, rbx
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 0
call fcn.008e6740
lea rax, [0x008bd6f0]
xor r9d, r9d
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
mov r8d, 1
mov rcx, rbx
lea rdx, str.RTRIM
call fcn.008e6740
cmp byte [rbx + 0x67], 0
jne 0x96cda4
mov eax, dword [rsp + 0xc0]
mov edx, 0x46
mov dword [rbx + 0x4c], eax
and eax, 7
bt edx, eax
jae 0x96cff1
lea rax, [rsp + 0x50]
mov rdx, r12
mov r9, rbx
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x48]
mov rcx, rbp
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0xc0]
call fcn.00904eb0
test eax, eax
mov edx, eax
je 0x96ce50
cmp eax, 7
jne 0x96cd7a
mov rcx, rbx
mov dword [rsp + 0x3c], eax
call fcn.008d1750
mov edx, dword [rsp + 0x3c]
mov r9, qword [rsp + 0x50]
mov eax, 0
mov rcx, rbx
lea r8, [0x00e94772]
test r9, r9
cmove r8, rax
call fcn.008e5d20
mov rcx, qword [rsp + 0x50]
call fcn.008be220
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x96cdb3
call qword [0x009da030]
mov rcx, rbx
call fcn.008dfd00
cmp al, 7
mov esi, eax
je 0x96cfe0
test eax, eax
je 0x96cdcd
mov byte [rbx + 0x71], 0xba
mov rcx, qword [rsp + 0x48]
mov qword [rdi], rbx
test rcx, rcx
je 0x96cddf
call fcn.008c6080
mov eax, esi
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, dword [0x009da0ec]
test ecx, ecx
je 0x96cacd
or eax, 0x20000
jmp 0x96cacd
test ah, 0x80
jne 0x96cabd
test eax, 0x10000
mov esi, 1
jne 0x96cabd
movzx esi, byte [0x009d9fa5]
jmp 0x96cabd
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x96cb25
jmp 0x96cb1f
mov eax, dword [rsp + 0xc0]
mov r8, rbx
mov rdx, qword [rbx + 0x20]
mov dword [rsp + 0x20], 0
or ah, 1
mov dword [rsp + 0x28], eax
lea r9, [rdx + 8]
mov rcx, qword [rbx]
mov rdx, qword [rsp + 0x48]
call fcn.00915920
test eax, eax
jne 0x96d070
mov rsi, qword [rbx + 0x20]
mov rdx, qword [rsi + 8]
cmp byte [rdx + 0x11], 0
je 0x96cea4
mov rcx, rdx
call fcn.008c1a80
mov rsi, qword [rbx + 0x20]
mov rdx, qword [rsi + 8]
mov rcx, rbx
call fcn.008da770
mov qword [rsi + 0x18], rax
cmp byte [rbx + 0x67], 0
je 0x96d025
mov rsi, qword [rbx + 0x20]
mov rcx, qword [rsi + 8]
cmp byte [rcx + 0x11], 0
je 0x96cee0
mov eax, dword [rcx + 0x14]
sub eax, 1
mov dword [rcx + 0x14], eax
jne 0x96cee0
call fcn.008c1b10
mov rsi, qword [rbx + 0x20]
nop dword [rax]
xor edx, edx
mov rcx, rbx
call fcn.008da770
mov qword [rsi + 0x38], rax
mov rax, qword [rbx + 0x20]
lea rsi, str.main
mov qword [rax], rsi
lea rsi, str.temp
mov byte [rax + 0x10], 3
mov rax, qword [rbx + 0x20]
mov qword [rax + 0x20], rsi
mov byte [rax + 0x30], 1
cmp byte [rbx + 0x67], 0
mov byte [rbx + 0x71], 0x76
jne 0x96cda4
cmp qword [rbx + 0x180], 0
mov dword [rbx + 0x50], 0
je 0x96d195
xor edx, edx
mov rcx, rbx
call fcn.008bf580
lea rdx, str.MATCH
mov r8d, 2
mov rcx, rbx
call fcn.00904660
cmp eax, 7
je 0x96d1a1
mov rcx, rbx
call fcn.008dfd00
test eax, eax
jne 0x96cfa5
lea rax, [0x00905e40]
mov rcx, rbx
mov esi, 1
call rax
lea rbp, [0x00e9eba0]
test eax, eax
jne 0x96cf9d
cmp esi, 3
jg 0x96cf9d
mov rax, qword [rbp + rsi*8]
mov rcx, rbx
add rsi, 1
call rax
test eax, eax
je 0x96cf86
test eax, eax
je 0x96d090
mov dword [rbx + 0x50], eax
mov edx, eax
mov rcx, rbx
call fcn.008bf580
mov r9d, dword [0x009d9fb8]
xor edx, edx
mov rcx, rbx
mov r8d, dword [0x009d9fb4]
call fcn.008c7aa0
mov edx, 0x3e8
mov rcx, rbx
call fcn.008c5fe0
jmp 0x96cda4
mov rcx, rbx
xor edx, edx
xor ebx, ebx
call fcn.009172f0
jmp 0x96cdcd
lea rax, [0x00e9331c]
mov r9d, 0x29f7c
mov ecx, 0x15
lea rdx, str._s_at_line__d_of___.10s_
mov qword [rsp + 0x20], rax
lea r8, str.misuse
call fcn.008ded00
mov edx, 0x15
jmp 0x96cd7a
mov rax, qword [rbx + 0x20]
lea r8, str.BINARY
xor r9d, r9d
mov rcx, rbx
mov rax, qword [rax + 0x18]
movzx edx, byte [rax + 0x71]
mov byte [rbx + 0x64], dl
call fcn.008d9d60
mov qword [rbx + 0x10], rax
jmp 0x96ceba
mov qword [rax + 0x18], 0
mov rcx, rbx
xor ebx, ebx
call fcn.008be220
jmp 0x96cdb3
cmp eax, 0xc0a
mov edx, 7
mov rcx, rbx
cmove eax, edx
mov dword [rbx + 0x50], eax
mov edx, eax
call fcn.008bf580
jmp 0x96cda4
mov eax, dword [0x00f1a8c0]
test eax, eax
je 0x96d0f4
lea r13, [0x00f1a8c0]
xor ebp, ebp
lea r15, [rsp + 0x58]
lea r14, fcn.008d6630
nop
cmp byte [0x009d9fa4], 0
je 0x96d110
mov ecx, 2
call qword [0x009da010]
test rax, rax
mov rsi, rax
je 0x96d110
mov rcx, rax
call qword [0x009da020]
cmp dword [r13], ebp
ja 0x96d153
mov rcx, rsi
call qword [0x009da030]
mov qword [rsp + 0x58], 0
xor ecx, ecx
call fcn.008be220
mov rcx, rbx
call fcn.008dfd00
test eax, eax
je 0x96cfb2
jmp 0x96cda4
cmp dword [r13], ebp
jbe 0x96d0e4
mov rdx, qword [0x00f1a8c8]
mov eax, ebp
mov r12, qword [rdx + rax*8]
mov qword [rsp + 0x58], 0
test r12, r12
je 0x96d1ae
mov r8, r14
mov rdx, r15
mov rcx, rbx
call r12
test eax, eax
jne 0x96d170
mov rcx, qword [rsp + 0x58]
call fcn.008be220
add ebp, 1
jmp 0x96d0b0
mov rdx, qword [0x00f1a8c8]
mov eax, ebp
mov rcx, rsi
mov r12, qword [rdx + rax*8]
call qword [0x009da030]
jmp 0x96d123
mov r9, qword [rsp + 0x58]
lea r8, str.automatic_extension_loading_failed:__s
mov rcx, rbx
mov edx, eax
call fcn.008e5d20
mov rcx, qword [rsp + 0x58]
call fcn.008be220
jmp 0x96d0f4
mov dword [rbx + 0x54], 0xffffffff
jmp 0x96cf40
mov rcx, rbx
call fcn.008d1750
jmp 0x96cf5e
xor ecx, ecx
jmp 0x96d146