Function at 0x5d83d0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r14
push r13
push r12
push rsi
push rbx
sub rsp, 0x50
mov r12, rcx
mov rcx, qword [rcx + 0x120]
test rcx, rcx
je 0x5d8488
mov dword [rsp + 0x40], 0
xor ebx, ebx
lea r14, [rsp + 0x40]
call fcn.00597670
mov rsi, qword [r12 + 0x120]
nop dword [rax + rax]
add ebx, 1
xor r8d, r8d
mov rdx, r14
mov rcx, rsi
mov r9d, ebx
call fcn.005cd450
mov r13d, eax
cmp eax, 0xffffffff
je 0x5d8410
or eax, dword [rsp + 0x40]
jne 0x5d8460
movabs rax, 0xff000000ff
test qword [r12 + 0x10], rax
jne 0x5d84b1
test r13d, r13d
je 0x5d84a1
mov rcx, r12
call fcn.005a3f00
mov eax, r13d
add rsp, 0x50
pop rbx
pop rsi
pop r12
pop r13
pop r14
ret
mov rcx, r12
call fcn.0059dbf0
cmp byte [r12 + 0x1a], 0
je 0x5d8432
mov rcx, qword [r12 + 0x48]
xor r8d, r8d
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x90]
jmp 0x5d8432
cmp byte [r12 + 0x14], 0
je 0x5d84d8
movabs rax, 0xff000000ff
test qword [r12 + 0x10], rax
jne 0x5d84b6
lea rdx, [r12 + 0x1c]
mov rcx, r12
call fcn.0058b810
mov r13d, eax
test r13d, r13d
jne 0x5d8448
xor r13d, r13d
mov byte [r12 + 0x14], 1
mov eax, r13d
mov byte [r12 + 0x1b], 1
add rsp, 0x50
pop rbx
pop rsi
pop r12
pop r13
pop r14
ret
mov edx, 1
mov rcx, r12
call fcn.00596fd0
mov r13d, eax
test eax, eax
jne 0x5d8448
cmp byte [r12 + 0x15], 1
jbe 0x5d8570
cmp byte [r12 + 0x12], 0
jne 0x5d86d6
movzx eax, byte [r12 + 0x15]
cmp al, 3
jbe 0x5d8512
cmp al, 5
jne 0x5d852a
mov edx, 4
mov rcx, r12
call fcn.00596f90
mov r13d, eax
test eax, eax
jne 0x5d8448
mov rax, qword [r12 + 0x50]
cmp qword [rax], 0
je 0x5d8718
mov rcx, r12
call fcn.005919e0
mov r13d, eax
test eax, eax
je 0x5d8808
movzx eax, r13b
cmp r13b, 0xd
je 0x5d855f
cmp eax, 0xa
jne 0x5d8448
mov edx, r13d
mov rcx, r12
call fcn.005a1660
jmp 0x5d8448
mov rax, qword [r12 + 0x50]
mov rsi, qword [r12]
mov dword [rsp + 0x34], 1
mov rbx, qword [rax]
test rbx, rbx
je 0x5d86e1
mov rcx, qword [r12 + 0x48]
mov dword [rsp + 0x38], 0
lea rdx, [rsp + 0x38]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov r13d, eax
test eax, eax
jne 0x5d8448
mov r8d, dword [rsp + 0x38]
test r8d, r8d
je 0x5d8829
nop
cmp byte [r12 + 0x10], 0
jne 0x5d86c0
cmp byte [r12 + 0x1b], 0
je 0x5d8662
mov rcx, qword [r12 + 0x48]
lea r14, [rsp + 0x40]
mov r9d, 0x18
mov r8d, 0x10
mov rdx, r14
mov rax, qword [rcx]
call qword [rax + 0x10]
mov r13d, eax
test eax, eax
je 0x5d8618
cmp eax, 0x20a
jne 0x5d8448
mov qword [r14], 0
mov qword [r14 + 8], 0
mov rax, qword [r12 + 0x88]
mov rdx, qword [r12 + 0x90]
xor rax, qword [rsp + 0x40]
xor rdx, qword [rsp + 0x48]
or rdx, rax
je 0x5d865a
mov rcx, r12
call fcn.0059dbf0
cmp byte [r12 + 0x1a], 0
je 0x5d865a
mov rcx, qword [r12 + 0x48]
xor r8d, r8d
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x90]
cmp byte [r12 + 0x10], 0
jne 0x5d86c0
mov rax, qword [r12]
mov rdx, qword [r12 + 0x128]
lea r9, [rsp + 0x3c]
xor r8d, r8d
mov rcx, rax
call qword [rax + 0x38]
mov r13d, eax
test eax, eax
jne 0x5d86a0
mov r13d, dword [rsp + 0x3c]
test r13d, r13d
jne 0x5d87c4
cmp byte [r12 + 9], 5
jne 0x5d86a0
mov byte [r12 + 9], 0
nop
mov rcx, qword [r12 + 0x120]
test rcx, rcx
jne 0x5d83ef
jmp 0x5d8432
mov rcx, qword [r12 + 0x120]
test rcx, rcx
jne 0x5d83ef
jmp 0x5d8490
mov r13d, 0x308
jmp 0x5d8448
mov rdx, qword [r12 + 0xd8]
lea r9, [rsp + 0x34]
xor r8d, r8d
mov rcx, rsi
call qword [rsi + 0x38]
mov r13d, eax
test eax, eax
jne 0x5d8448
mov eax, dword [rsp + 0x34]
test eax, eax
je 0x5d85c0
jmp 0x5d858d
mov rbx, qword [r12]
mov rdx, qword [r12 + 0xd8]
lea r9, [rsp + 0x3c]
xor r8d, r8d
mov rcx, rbx
call qword [rbx + 0x38]
mov r13d, eax
test eax, eax
jne 0x5d87a7
mov ecx, dword [rsp + 0x3c]
mov r8, qword [r12 + 0x50]
test ecx, ecx
jne 0x5d8899
cmp qword [r8], 0
jne 0x5d8539
cmp byte [r12 + 8], 0
jne 0x5d85c0
mov rcx, qword [r12 + 0x48]
mov rax, qword [rcx]
test rax, rax
je 0x5d878b
cmp byte [r12 + 0x11], 0
jne 0x5d877d
mov edx, 1
call qword [rax + 0x40]
cmp byte [r12 + 0x15], 5
je 0x5d878b
mov byte [r12 + 0x15], 1
movzx eax, byte [r12 + 0x10]
mov byte [r12 + 0x16], al
test r13d, r13d
je 0x5d85c0
jmp 0x5d854c
mov r13d, eax
mov rax, qword [r12 + 0x50]
cmp qword [rax], 0
jne 0x5d8539
cmp byte [r12 + 8], 0
jne 0x5d854c
jmp 0x5d8760
lea r14, [rsp + 0x40]
mov rcx, r12
mov rdx, r14
call fcn.0058b810
mov r13d, eax
test eax, eax
jne 0x5d86a0
mov edx, dword [rsp + 0x40]
test edx, edx
jne 0x5d88e6
mov rax, qword [r12]
mov rdx, qword [r12 + 0x128]
xor r8d, r8d
mov rcx, rax
call qword [rax + 0x30]
mov r13d, eax
jmp 0x5d86a0
xor edx, edx
cmp byte [r12 + 0x10], 0
mov rcx, r12
sete dl
call fcn.005d72d0
mov byte [r12 + 0x14], 0
mov r13d, eax
jmp 0x5d8796
lea rdx, [rsp + 0x3c]
mov rcx, r12
call fcn.0058b810
mov r13d, eax
test eax, eax
jne 0x5d8448
cmp dword [rsp + 0x3c], 0
jne 0x5d88f8
test rbx, rbx
je 0x5d89a5
mov rcx, qword [r12 + 0x50]
mov byte [rsp + 0x40], 0
lea r14, [rsp + 0x40]
xor r9d, r9d
mov r8d, 1
mov rdx, r14
mov rax, qword [rcx]
call qword [rax + 0x10]
mov r13d, eax
cmp eax, 0x20a
jne 0x5d898d
cmp byte [rsp + 0x40], 0
setne al
test al, al
je 0x5d85c0
jmp 0x5d84f8
lea r14, [rsp + 0x40]
mov r9d, 0x802
mov rcx, rbx
mov dword [rsp + 0x40], 0
mov qword [rsp + 0x20], r14
mov rdx, qword [r12 + 0xd8]
call qword [rbx + 0x28]
test eax, eax
jne 0x5d87a4
test byte [rsp + 0x40], 1
jne 0x5d8a3a
mov rax, qword [r12 + 0x50]
cmp qword [rax], 0
jne 0x5d8539
jmp 0x5d8754
xor edx, edx
mov rcx, r12
call fcn.005a1980
mov r13d, eax
jmp 0x5d86a0
test rbx, rbx
jne 0x5d8855
lea r14, [rsp + 0x40]
mov dword [rsp + 0x40], 0x801
mov r8, qword [r12 + 0x50]
mov r9d, 0x801
mov qword [rsp + 0x20], r14
mov rdx, qword [r12 + 0xd8]
mov rcx, rsi
call qword [rsi + 0x28]
mov ebx, eax
test eax, eax
je 0x5d8943
mov r13d, eax
cmp eax, 0xe
jne 0x5d8448
jmp 0x5d84f8
mov rcx, qword [r12 + 0x50]
mov byte [rsp + 0x40], 0
xor r9d, r9d
mov rdx, r14
mov r8d, 1
mov rax, qword [rcx]
call qword [rax + 0x10]
mov r13d, eax
cmp eax, 0x20a
je 0x5d8aa4
mov rsi, qword [r12 + 0x50]
mov ebx, r13d
mov rax, qword [rsi]
test rax, rax
je 0x5d898d
mov rcx, rsi
mov r13d, ebx
call qword [rax + 8]
mov qword [rsi], 0
movzx eax, byte [rsp + 0x40]
test r13d, r13d
jne 0x5d8448
test al, al
setne al
jmp 0x5d888c
mov rax, qword [0x0085aa50]
test rax, rax
je 0x5d89b3
call rax
movzx eax, byte [r12 + 0x15]
cmp al, 1
jbe 0x5d8a27
cmp al, 5
je 0x5d8a27
xor r8d, r8d
mov rdx, qword [r12 + 0xd8]
mov rcx, rsi
call qword [rsi + 0x30]
cmp byte [r12 + 8], 0
jne 0x5d8a10
mov rcx, qword [r12 + 0x48]
mov rax, qword [rcx]
test rax, rax
je 0x5d8a05
cmp byte [r12 + 0x11], 0
jne 0x5d89f7
mov edx, 1
call qword [rax + 0x40]
cmp byte [r12 + 0x15], 5
je 0x5d8a05
mov byte [r12 + 0x15], 1
movzx eax, byte [r12 + 0x10]
mov byte [r12 + 0x16], al
mov rax, qword [0x0085aa58]
test rax, rax
je 0x5d85c0
call rax
jmp 0x5d85c0
mov edx, 2
mov rcx, r12
call fcn.00596f90
test eax, eax
je 0x5d89c1
jmp 0x5d8a10
lea rax, [0x0081fdd4]
mov r9d, 0xdd98
lea r8, str.cannot_open_file
mov ecx, 0xe
mov qword [rsp + 0x20], rax
lea rdx, str._s_at_line__d_of___.10s_
call fcn.005b50b0
mov rbx, qword [r12 + 0x50]
mov rax, qword [rbx]
test rax, rax
je 0x5d8a8d
mov rcx, rbx
call qword [rax + 8]
mov rax, qword [r12 + 0x50]
mov qword [rbx], 0
cmp qword [rax], 0
jne 0x5d8539
cmp byte [r12 + 8], 0
mov r13d, 0xe
je 0x5d8760
jmp 0x5d8448
mov rsi, qword [r12 + 0x50]
mov rax, qword [rsi]
test rax, rax
jne 0x5d897d
jmp 0x5d8884