Function at 0x5c7630
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, 0x118
mov edi, 7
mov rax, qword [rcx]
mov rax, qword [rax]
mov word [rsp + 0x52], r9w
mov r13, rcx
mov r14, rdx
mov r12, r8
mov qword [rsp + 0x90], rax
mov rax, qword [rax]
mov dword [rsp + 0x9c], r9d
cmp byte [rax + 0x61], 0
mov qword [rsp + 0x78], rax
jne 0x5c7a4a
mov rbx, qword [rcx + 0x18]
lea r15, [rsp + 0xa0]
movzx esi, word [rbx + 0x1a]
mov eax, dword [rbx + 0x28]
movzx edi, word [rbx + 0x18]
mov word [rsp + 0x5a], si
movzx esi, word [rbx + 0x1c]
mov dword [rsp + 0x54], eax
and eax, 0x20
mov r9d, edi
mov word [rsp + 0x98], si
mov rsi, qword [rbx + 0x16]
cmp eax, 1
sbb eax, eax
mov word [rsp + 0x3e], di
mov qword [rsp + 0x80], rsi
movzx esi, word [rbx + 0x2e]
and eax, 0x1a7
add eax, 0x18
mov dword [rsp + 0x6c], edi
mov word [rsp + 0x9a], si
mov rsi, qword [rbx + 0x28]
mov edx, eax
and edx, 0xffffffc3
test byte [r8 + 0x64], 4
mov qword [rsp + 0x88], rsi
movzx esi, word [rbx + 0x2c]
cmovne eax, edx
mov rdx, qword [rcx + 8]
mov rcx, r15
mov word [rsp + 0x50], si
mov rsi, qword [rbx]
mov qword [rsp + 0x48], rsi
movzx esi, word [rbx + 0x16]
mov qword [rsp + 0x28], r8
mov r8d, dword [r14 + 0x44]
mov dword [rsp + 0x20], eax
mov word [rsp + 0x3c], si
call fcn.005c7490
xor edx, edx
xor r8d, r8d
mov rsi, rax
mov rax, qword [r12 + 0x10]
mov word [rbx + 0x12], dx
mov word [rsp + 0x58], r8w
movsx rax, word [rax]
mov dword [rsp + 0x68], eax
mov rcx, rax
cmp ax, 0xa
jg 0x5c7ec0
test rsi, rsi
je 0x5c7fc0
mov qword [rsp + 0x60], 0
movzx eax, word [rsp + 0x3e]
mov qword [rsp + 0x70], 0
add rax, rax
mov qword [rsp + 0x40], rax
movzx eax, word [rsp + 0x50]
add eax, 1
mov dword [rsp + 0x5c], eax
jmp 0x5c79ba
mov rax, qword [rsi + 0x30]
test qword [rbx + 8], rax
jne 0x5c7a00
cmp di, 0x10
sete bpl
and bpl, byte [rsi + 0x13]
jne 0x5c7a05
test byte [r14 + 0x3c], 8
je 0x5c77c4
mov rax, qword [rsi]
test byte [rax + 4], 1
je 0x5c7a00
cmp byte [r12 + 0x62], 0
mov eax, dword [r13 + 0x28]
je 0x5c77e3
movzx edx, word [r12 + 0x5e]
sub edx, 1
cmp dword [rsp + 0x6c], edx
je 0x5c7c48
or eax, 1
movzx ecx, word [rsp + 0x50]
mov edx, dword [rsp + 0x5c]
mov dword [r13 + 0x28], eax
mov eax, dword [rsp + 0x54]
mov word [rbx + 0x2c], cx
mov dword [rbx + 0x28], eax
movzx eax, word [rsp + 0x3e]
mov word [rbx + 0x18], ax
movzx eax, word [rsp + 0x5a]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x98]
mov word [rbx + 0x1c], ax
movzx eax, word [rbx + 0x30]
cmp edx, eax
jle 0x5c7840
mov rcx, qword [rsp + 0x78]
mov r8d, edx
mov rdx, rbx
call fcn.0059f290
test eax, eax
jne 0x5c7fc0
movzx ecx, word [rbx + 0x2c]
mov rax, qword [rbx + 0x38]
mov r8, qword [rbx + 8]
lea edx, [rcx + 1]
mov ebp, edi
mov word [rbx + 0x2c], dx
not r8
mov qword [rax + rcx*8], rsi
mov rcx, qword [rsp + 0x48]
or rcx, qword [rsi + 0x30]
and rcx, r8
mov qword [rbx], rcx
and bp, 1
je 0x5c7a60
mov rcx, qword [rsi]
movzx r9d, byte [r12 + 0x64]
movsx r8d, word [rsp + 0x58]
test byte [rcx + 5], 8
jne 0x5c7e10
mov rax, qword [rcx + 0x20]
test rax, rax
je 0x5c789e
movsxd rcx, dword [rax]
test ecx, ecx
jne 0x5c7eb0
xor ebp, ebp
test r9b, r9b
js 0x5c7e90
mov r10d, dword [rbx + 0x28]
or r10d, 4
mov dword [rbx + 0x28], r10d
movzx r11d, word [rbx + 0x16]
test r10b, 2
jne 0x5c7af0
movzx eax, word [rbx + 0x18]
movzx edx, word [rsi + 0x10]
add eax, 1
mov word [rbx + 0x18], ax
test dx, dx
jle 0x5c7ba8
mov rdx, qword [r12 + 0x10]
movzx eax, ax
add r11w, word [rdx + rax*2]
sub r11w, word [rdx + rax*2 - 2]
test di, 0x100
je 0x5c78fa
add r11d, 0xa
mov word [rbx + 0x16], r11w
mov esi, r11d
movsx edx, word [r12 + 0x5c]
mov eax, edx
shl eax, 4
sub eax, edx
mov rdx, qword [r14 + 0x20]
movsx ecx, word [rdx + 0x4c]
cdq
idiv ecx
mov ecx, r8d
lea eax, [r11 + rax + 1]
movsx edx, ax
call fcn.00596280
and r10d, 0x140
jne 0x5c7942
lea edx, [r11 + 0x10]
movsx ecx, ax
movsx edx, dx
call fcn.00596280
add bp, word [rsp + 0x52]
mov rcx, qword [r13 + 8]
mov rdx, rbx
add eax, ebp
add r11d, ebp
mov r8d, dword [rsp + 0x68]
mov word [rbx + 0x14], ax
mov word [rbx + 0x16], r11w
call fcn.00599180
mov rdx, rbx
mov rcx, r13
call fcn.0059f310
mov edi, eax
mov eax, dword [rbx + 0x28]
test al, 2
cmovne si, word [rsp + 0x3c]
mov word [rbx + 0x16], si
test al, 0x10
jne 0x5c7996
movzx eax, word [r12 + 0x60]
cmp word [rbx + 0x18], ax
jb 0x5c7c50
movzx eax, word [rsp + 0x3c]
test edi, edi
mov rcx, r15
sete bpl
mov word [rbx + 0x16], ax
call fcn.005c7140
mov rsi, rax
test rax, rax
je 0x5c7a17
test bpl, bpl
je 0x5c7a17
movzx edi, word [rsi + 0x14]
cmp di, 0x100
jne 0x5c7790
mov rax, qword [r12 + 8]
mov rdx, qword [rsp + 0x40]
movsx rdx, word [rax + rdx]
mov rax, rdx
test edx, edx
jns 0x5c7b80
cmp edx, 0xffffffff
je 0x5c7a00
mov rax, qword [rsi + 0x30]
test qword [rbx + 8], rax
je 0x5c77b0
nop word cs:[rax + rax]
mov ebp, 1
mov rcx, r15
xor edi, edi
call fcn.005c7140
mov rsi, rax
test rax, rax
jne 0x5c79b5
mov rax, qword [rsp + 0x48]
movzx esi, word [rsp + 0x9a]
mov qword [rbx], rax
mov rax, qword [rsp + 0x80]
mov qword [rbx + 0x16], rax
mov rax, qword [rsp + 0x88]
mov qword [rbx + 0x28], rax
cmp word [rsp + 0x3e], si
je 0x5c7ca0
mov eax, edi
add rsp, 0x118
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rbx + 0x28]
test dil, 0x82
je 0x5c7bd0
mov rdx, qword [r12 + 8]
mov rcx, qword [rsp + 0x40]
mov r10d, eax
or r10d, 1
movsx r8d, word [rsp + 0x58]
movsx edx, word [rdx + rcx]
mov dword [rbx + 0x28], r10d
cmp edx, 0xffffffff
je 0x5c7e00
test edx, edx
js 0x5c78b5
cmp word [rsp + 0x52], 0
jne 0x5c78b5
movzx edx, word [r12 + 0x5e]
mov ecx, edx
sub edx, 1
cmp dword [rsp + 0x6c], edx
jne 0x5c78b5
test byte [r12 + 0x64], 8
jne 0x5c7e00
cmp cx, 1
je 0x5c7de0
or eax, 0x10001
movzx r11d, word [rbx + 0x16]
mov r10d, eax
mov dword [rbx + 0x28], eax
test r10b, 2
je 0x5c78c4
nop
xor edx, edx
cmp qword [rsp + 0x60], 0
movsx eax, r11w
je 0x5c7b19
mov rdi, qword [rsp + 0x60]
movzx edx, word [rdi + 0x10]
test dx, dx
jle 0x5c7c90
sub r11d, 0x14
mov edx, 1
cmp qword [rsp + 0x70], 0
je 0x5c7b58
mov rdi, qword [rsp + 0x70]
movzx ecx, word [rdi + 0x10]
mov rdi, qword [rsp + 0x60]
lea r9d, [rcx + r11]
sub r11d, 0x14
test cx, cx
cmovle r11d, r9d
add edx, 1
test rdi, rdi
je 0x5c7b58
cmp word [rdi + 0x10], 0
jle 0x5c7b58
lea r9d, [r11 - 0x14]
test cx, cx
cmovg r11d, r9d
sub eax, edx
cmp r11w, 0xa
mov edx, 0xa
cmovl r11d, edx
movsx r11d, r11w
cmp r11d, eax
cmovg r11d, eax
mov word [rbx + 0x16], r11w
mov esi, r11d
jmp 0x5c7902
mov rdx, qword [r12 + 0x18]
shl rax, 5
add rax, qword [rdx + 8]
cmp byte [rax + 0x18], 0
je 0x5c79e8
mov ebp, 1
jmp 0x5c7a05
mov rcx, qword [r12 + 8]
mov rsi, qword [rsp + 0x40]
cmp word [rcx + rsi], 0
js 0x5c78dc
sub r11d, ebp
add r11d, edx
mov word [rbx + 0x16], r11w
mov esi, r11d
jmp 0x5c7902
mov ebp, edi
and bp, 0x100
jne 0x5c7c70
mov edx, dword [r14 + 0x44]
test dil, 0x24
je 0x5c7ed8
or eax, 0x22
mov r9d, dword [rsp + 0x6c]
mov rcx, qword [rsp + 0x90]
mov r8, r12
mov dword [rbx + 0x28], eax
mov qword [rsp + 0x20], rsi
call fcn.005c2650
mov word [rbx + 0x1a], ax
test byte [rsi + 0x13], 1
jne 0x5c7f30
mov qword [rsp + 0x70], 0
mov r10d, dword [rbx + 0x28]
movzx r11d, word [rbx + 0x16]
movsx r8d, word [rsp + 0x58]
test r10b, 2
jne 0x5c7fc7
mov qword [rsp + 0x60], rsi
jmp 0x5c78c4
or eax, 2
jmp 0x5c77e6
movsx r9d, bp
mov r8, r12
mov rdx, r14
mov rcx, r13
call fcn.005c7630
jmp 0x5c7996
or eax, 8
movsx r8d, word [rsp + 0x58]
xor ebp, ebp
mov dword [rbx + 0x28], eax
mov r10d, eax
jmp 0x5c78b5
add r11d, edx
mov edx, 1
jmp 0x5c7b19
mov eax, dword [rsp + 0x6c]
movzx edx, word [r12 + 0x5e]
add eax, 1
cmp eax, edx
jge 0x5c7a4a
movzx esi, word [rsp + 0x50]
cmp word [rsp + 0x3e], si
jne 0x5c7a4a
test byte [r12 + 0x64], 0x40
jne 0x5c7a4a
mov rcx, qword [rsp + 0x78]
test byte [rcx + 0x5d], 0x40
jne 0x5c7a4a
movzx edx, word [rsp + 0x3e]
mov rax, qword [r12 + 0x10]
lea rsi, [rdx + rdx + 2]
lea r9, [rax + rsi]
cmp word [r9], 0x29
jle 0x5c7a4a
movzx r8d, word [rsp + 0x50]
movzx edx, word [rbx + 0x30]
add r8d, 1
cmp r8d, edx
jle 0x5c8005
mov rdx, rbx
call fcn.0059f290
mov edi, eax
test eax, eax
jne 0x5c7a4a
movzx eax, word [rbx + 0x2c]
movzx r8d, word [rbx + 0x18]
movzx ecx, word [rbx + 0x2e]
mov edx, dword [rbx + 0x28]
mov word [rsp + 0x50], ax
mov rax, qword [r12 + 0x10]
movzx r10d, word [rbx + 0x16]
lea r9, [rax + rsi]
movzx edi, word [rsp + 0x50]
add r8d, 1
add ecx, 1
or dh, 0x80
mov word [rbx + 0x18], r8w
mov r8, qword [rbx + 0x38]
mov word [rbx + 0x2e], cx
lea ecx, [rdi + 1]
mov word [rbx + 0x2c], cx
movzx ecx, di
movzx eax, word [rax + rsi - 2]
mov qword [r8 + rcx*8], 0
movzx ecx, word [r9]
mov r8, r12
movzx edi, word [rsp + 0x9c]
mov dword [rbx + 0x28], edx
lea edx, [r10 + rcx]
sub edx, eax
lea eax, [rax + rdi + 5]
xor edi, edi
mov word [rbx + 0x16], dx
sub eax, ecx
mov rdx, r14
mov rcx, r13
movsx r9d, ax
call fcn.005c7630
movzx eax, word [rsp + 0x3c]
mov word [rbx + 0x16], ax
movzx eax, word [rsp + 0x3e]
mov word [rbx + 0x18], ax
movzx eax, word [rsp + 0x9a]
mov word [rbx + 0x2e], ax
mov eax, dword [rsp + 0x54]
mov dword [rbx + 0x28], eax
jmp 0x5c7a4a
cmp byte [r12 + 0x62], 0
je 0x5c7ad4
cmp di, 2
jne 0x5c7ad4
nop word cs:[rax + rax]
or eax, 0x1001
mov dword [rbx + 0x28], eax
mov r10d, eax
jmp 0x5c78b5
cmp dx, 1
jbe 0x5c7fd5
movzx edx, dx
mov ebp, 0x2e
xor r11d, r11d
sub edx, 2
lea r10, [rax + rdx*8 + 8]
nop dword [rax]
mov rdx, qword [rax]
test rdx, rdx
je 0x5c7e3f
cmp qword [rdx], rcx
cmove ebp, r11d
add rax, 8
cmp rax, r10
jne 0x5c7e30
test r9b, r9b
jns 0x5c78a9
mov rax, qword [r12 + 0x10]
mov rcx, qword [rsp + 0x40]
lea r10d, [rbp + r8]
movsx r9d, word [rax + rcx]
xor eax, eax
cmp ebp, 0xa
jle 0x5c7e78
movsxd rcx, ebp
call fcn.0058b040
sub eax, 0x21
cwde
lea eax, [rax + r9 + 0xa]
cmp eax, r10d
jge 0x5c78a9
mov ebp, 1
jmp 0x5c7a05
mov rax, qword [r12 + 0x10]
mov rdx, qword [rsp + 0x40]
mov r10d, r8d
xor ebp, ebp
movsx r9d, word [rax + rdx]
xor eax, eax
jmp 0x5c7e78
call fcn.0058b040
movsx ebp, ax
jmp 0x5c7e48
call fcn.0058b040
sub eax, 0x21
mov word [rsp + 0x58], ax
jmp 0x5c7757
or eax, 0x12
mov r9d, dword [rsp + 0x6c]
mov rcx, qword [rsp + 0x90]
mov r8, r12
mov dword [rbx + 0x28], eax
mov qword [rsp + 0x20], rsi
call fcn.005c2650
mov r10d, dword [rbx + 0x28]
movsx r8d, word [rsp + 0x58]
mov word [rbx + 0x1c], ax
test r10b, 0x20
je 0x5c7f90
movzx edx, word [rbx + 0x2c]
mov rax, qword [rbx + 0x38]
mov qword [rsp + 0x70], rsi
mov rax, qword [rax + rdx*8 - 0x10]
mov qword [rsp + 0x60], rax
jmp 0x5c78b5
movzx r8d, word [rbx + 0x2c]
lea rax, [rsi + 0x40]
movzx edx, word [rbx + 0x30]
mov qword [rsp + 0x70], rax
mov rax, r8
add r8d, 1
cmp r8d, edx
jle 0x5c7f63
mov rcx, qword [rsp + 0x78]
mov rdx, rbx
call fcn.0059f290
test eax, eax
jne 0x5c7fc0
movzx eax, word [rbx + 0x2c]
lea ecx, [rax + 1]
mov r10d, dword [rbx + 0x28]
mov rdx, qword [rbx + 0x38]
mov word [rbx + 0x2c], cx
lea rcx, [rsi + 0x40]
mov qword [rdx + rax*8], rcx
or r10d, 0x10
mov eax, 1
mov dword [rbx + 0x28], r10d
mov word [rbx + 0x1c], ax
jmp 0x5c7c26
movzx r11d, word [rbx + 0x16]
mov qword [rsp + 0x70], rsi
xor edx, edx
mov qword [rsp + 0x60], 0
movsx eax, r11w
test r10b, 2
je 0x5c78c4
jmp 0x5c7b21
xor edi, edi
jmp 0x5c7a17
mov qword [rsp + 0x60], rsi
movsx eax, r11w
jmp 0x5c7afe
mov ebp, 0x2e
test r9b, r9b
jns 0x5c78a9
mov rax, qword [r12 + 0x10]
mov rdx, qword [rsp + 0x40]
lea r10d, [r8 + 0x2e]
mov ecx, 0x2e
mov ebp, 0x2e
movsx r9d, word [rax + rdx]
jmp 0x5c7e6f
movzx r8d, word [rsp + 0x3e]
movzx r10d, word [rsp + 0x3c]
mov edx, dword [rsp + 0x54]
mov ecx, r8d
jmp 0x5c7d4a