Function at 0x5f3490
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
mov rsi, qword [rcx + 8]
mov r13, qword [rcx]
mov r15, qword [rcx + 0x10]
movzx eax, byte [rsi + 0x20]
mov byte [rsp + 0x34], al
mov eax, dword [r13 + 0x44]
mov rbx, rcx
mov ebp, edx
mov dword [rsp + 0xa8], r9d
mov edi, r8d
lea r12d, [rax - 1]
mov dword [r13 + 0x44], r12d
cmp edx, 2
je 0x5f3750
test r8d, r8d
jle 0x5f3502
cmp byte [rsi + 0x20], 0x59
je 0x5f3980
mov r9d, r12d
mov r8d, edi
mov edx, 0x30
mov rcx, r15
mov dword [rsp + 0x20], 1
call fcn.005af360
mov dword [rsp + 0x30], 0
cmp ebp, 1
je 0x5f3640
movzx eax, byte [rsi + 0x21]
mov ecx, dword [r15 + 0x90]
mov dword [rsp + 0x3c], ecx
cmp byte [rsi + 0x22], al
jne 0x5f352f
test edi, edi
jne 0x5f3850
cmp ebp, 1
je 0x5f365b
cmp ebp, 2
je 0x5f37bb
mov eax, dword [rbx + 0x3c]
mov r9d, dword [rsi + 0x84]
mov edi, dword [rbx + 0x38]
mov dword [rsp + 0x38], eax
test r9d, r9d
je 0x5f3820
mov r8d, dword [rsi + 0x88]
mov dword [rsp + 0x20], 0
mov r9d, 1
mov edx, 0x52
mov rcx, r15
call fcn.005af360
cmp dword [rbx + 0x24], ebp
jne 0x5f3676
xor r9d, r9d
mov r8d, edi
mov edx, 0x7a
mov rcx, r15
mov dword [rsp + 0x20], 0
call fcn.005af360
mov eax, dword [r15 + 0x90]
test eax, eax
jle 0x5f367d
mov rcx, qword [r15 + 0x88]
movsxd rdx, eax
mov r8d, 2
lea rdx, [rdx + rdx*2]
lea rdx, [rcx + rdx*8]
mov word [rdx - 0x16], r8w
mov edx, dword [rsp + 0xa8]
test edx, edx
jne 0x5f368c
nop dword [rax]
movzx ebp, byte [rsp + 0x34]
xor edx, edx
mov r8d, edi
mov rcx, r15
mov dword [rsp + 0x20], 0
cmp bpl, 0x4c
setne dl
xor r14d, r14d
lea r9d, [rax + rdx + 1]
mov edx, 5
call fcn.005af360
cmp bpl, 0x4c
je 0x5f3723
mov r9d, r12d
xor r8d, r8d
mov edx, 0xb
mov rcx, r15
mov dword [rsp + 0x20], 0
call fcn.005af360
jmp 0x5f36cd
mov r10d, dword [rsi + 0x84]
test r10d, r10d
je 0x5f39b0
mov eax, dword [r15 + 0x90]
mov dword [rsp + 0x3c], eax
mov eax, dword [rbx + 0x34]
mov rcx, rbx
mov edi, dword [rbx + 0x30]
mov dword [rsp + 0x38], eax
call fcn.005f2c20
cmp dword [rbx + 0x24], ebp
je 0x5f3586
mov eax, dword [r15 + 0x90]
mov edx, dword [rsp + 0xa8]
test edx, edx
je 0x5f35e0
lea r9d, [rax + 2]
mov r8d, edi
mov edx, 5
mov rcx, r15
mov dword [rsp + 0x20], 0
call fcn.005af360
xor r9d, r9d
xor r8d, r8d
mov edx, 0xb
mov dword [rsp + 0x20], 0
mov rcx, r15
call fcn.005af360
cmp byte [rsp + 0x34], 0x4c
mov r14d, eax
je 0x5f3723
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x5f36e2
mov r11d, dword [rax]
test r11d, r11d
jne 0x5f3918
mov rdx, qword [rbx + 8]
mov rcx, qword [rbx]
xor r9d, r9d
mov r8d, edi
xor ebp, ebp
call fcn.005b0250
mov eax, dword [rsp + 0x3c]
mov rdx, qword [rsi + 0x18]
xor r8d, r8d
mov r9d, dword [rsp + 0x38]
mov rcx, r13
mov dword [rsp + 0x20], eax
call fcn.005c2fe0
xor r11d, r11d
cmp dword [r13 + 0x28], r11d
jge 0x5f3723
mov dword [r13 + 0x28], r11d
mov dword [r13 + 0x2c], ebp
mov eax, dword [rsp + 0x30]
test eax, eax
jne 0x5f37f8
mov edx, r12d
mov rcx, r15
call fcn.005af190
mov eax, r14d
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [rsi + 0x21]
xor r14d, r14d
cmp al, 0x5a
je 0x5f373a
test r8d, r8d
jle 0x5f3840
cmp byte [rsi + 0x20], 0x59
jne 0x5f34e7
mov eax, dword [r15 + 0x90]
cmp byte [rsi + 0x21], 0x56
mov r8d, dword [rbx + 0x28]
mov dword [rsp + 0x30], eax
mov eax, dword [rbx + 0x30]
je 0x5f39e0
mov dword [rsp + 0x28], r12d
mov r9d, edi
mov edx, 0x39
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.005b02e0
mov eax, dword [r15 + 0x90]
mov dword [rsp + 0x3c], eax
movzx eax, byte [rsi + 0x22]
cmp byte [rsi + 0x21], al
je 0x5f39c8
mov eax, dword [rbx + 0x2c]
mov r8d, dword [rsi + 0x84]
mov edi, dword [rbx + 0x28]
mov dword [rsp + 0x38], eax
test r8d, r8d
jne 0x5f3562
mov eax, dword [rbx + 0x20]
mov rcx, qword [rbx]
mov r9d, 1
mov r8d, edi
mov rdx, rsi
mov dword [rsp + 0x20], eax
call fcn.005f2630
jmp 0x5f366d
mov r9d, dword [rsp + 0x30]
xor r8d, r8d
mov edx, 0xb
mov rcx, r15
mov dword [rsp + 0x20], 0
call fcn.005af360
jmp 0x5f372f
mov eax, dword [rbx + 0x20]
mov rcx, qword [rbx]
xor r9d, r9d
mov r8d, edi
mov rdx, rsi
mov dword [rsp + 0x20], eax
call fcn.005f2630
jmp 0x5f366d
mov dword [rsp + 0x30], 0
jmp 0x5f3517
cmp byte [rsi + 0x20], 0x59
jne 0x5f352f
cmp ebp, 2
jne 0x5f352f
movzx eax, byte [r13 + 0x1f]
test al, al
je 0x5f3a02
lea edx, [rax - 1]
movzx ecx, dl
mov byte [r13 + 0x1f], dl
mov edi, dword [r13 + rcx*4 + 0xcc]
test dl, dl
je 0x5f3a19
sub eax, 2
mov byte [r13 + 0x1f], al
movzx eax, al
mov r14d, dword [r13 + rax*4 + 0xcc]
mov r8d, dword [rbx + 0x28]
mov r9d, edi
mov edx, 0x7f
mov rcx, r15
mov dword [rsp + 0x20], 0
call fcn.005af360
mov r8d, dword [rbx + 0x38]
mov r9d, r14d
mov rcx, r15
mov dword [rsp + 0x20], 0
mov edx, 0x7f
call fcn.005af360
mov dword [rsp + 0x20], edi
mov r9d, r12d
mov r8d, r14d
mov edx, 0x39
mov rcx, r15
call fcn.005af360
test edi, edi
je 0x5f38f9
mov edx, edi
mov rcx, r13
call fcn.00599680
test r14d, r14d
je 0x5f37bb
mov edx, r14d
mov rcx, r13
call fcn.00599680
jmp 0x5f37bb
mov edx, r11d
mov rcx, r13
mov dword [rsp + 0x34], r11d
call fcn.005996a0
mov rdx, qword [rbx + 8]
mov rcx, qword [rbx]
mov r8d, edi
mov r9d, eax
mov ebp, eax
call fcn.005b0250
mov eax, dword [rsp + 0x3c]
mov rdx, qword [rsi + 0x18]
mov r8d, ebp
mov r9d, dword [rsp + 0x38]
mov rcx, r13
mov dword [rsp + 0x20], eax
call fcn.005c2fe0
mov r11d, dword [rsp + 0x34]
cmp r11d, 1
jne 0x5f3715
mov edx, ebp
mov rcx, r13
call fcn.00599710
jmp 0x5f3723
mov r8d, dword [rbx + 0x38]
mov r9d, edi
mov edx, 0x36
mov rcx, rbx
mov eax, dword [r15 + 0x90]
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x30], eax
mov eax, dword [rbx + 0x30]
mov dword [rsp + 0x20], eax
call fcn.005b02e0
jmp 0x5f350a
mov rdx, qword [rbx + 8]
mov rcx, qword [rbx]
xor r8d, r8d
call fcn.005b0070
jmp 0x5f3650
cmp byte [rsi + 0x20], 0x59
jne 0x5f37bb
jmp 0x5f3863
mov dword [rsp + 0x20], r8d
mov r9d, edi
mov r8d, eax
mov edx, 0x37
mov dword [rsp + 0x28], r12d
mov rcx, rbx
call fcn.005b02e0
jmp 0x5f37a3
mov eax, dword [r13 + 0x38]
lea edi, [rax + 1]
mov r14d, edi
add r14d, 1
mov dword [r13 + 0x38], r14d
jmp 0x5f389c
mov r14d, dword [r13 + 0x38]
jmp 0x5f3a0c