Function at 0x5e5c40
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, 0x198
mov rdi, rcx
mov rsi, r8
mov r8d, 0x14
lea rcx, [rcx + 0x28]
mov rbx, rdx
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x5e6322
mov rdx, rbx
mov rcx, rdi
call fcn.005e3d00
movzx ebp, byte [rbx + 3]
mov qword [rsp + 0x138], 8
mov r15, rax
movzx eax, byte [rbx + 8]
movzx r11d, byte [rbx + 4]
movzx r10d, byte [rbx + 5]
movzx r9d, byte [rbx + 6]
mov byte [rsp + 0x14b], bpl
mov byte [rsp + 0x150], al
movzx eax, byte [rbx + 9]
movzx r8d, byte [rbx + 7]
mov byte [rsp + 0x14c], r11b
movzx r14d, byte [rbx]
mov byte [rsp + 0x14d], r10b
movzx r13d, byte [rbx + 1]
mov byte [rsp + 0x14e], r9b
xor r9d, r9d
mov byte [rsp + 0x151], al
movzx eax, byte [rbx + 0xa]
movzx r12d, byte [rbx + 2]
mov byte [rsp + 0x14f], r8b
mov rdx, qword [r15 + 0x20]
mov byte [rsp + 0x148], r14b
mov rcx, qword [r15 + 0x18]
mov byte [rsp + 0x149], r13b
mov byte [rsp + 0x152], al
movzx eax, byte [rbx + 0xb]
mov byte [rsp + 0x14a], r12b
mov byte [rsp + 0x153], al
movzx eax, byte [rbx + 0xc]
mov byte [rsp + 0x154], al
movzx eax, byte [rbx + 0xd]
mov byte [rsp + 0x155], al
movzx eax, byte [rbx + 0xe]
mov byte [rsp + 0x156], al
movzx eax, byte [rbx + 0xf]
mov byte [rsp + 0x157], al
movzx eax, byte [rbx + 0x10]
mov byte [rsp + 0x158], al
movzx eax, byte [rbx + 0x11]
mov byte [rsp + 0x159], al
movzx eax, byte [rbx + 0x12]
mov byte [rsp + 0x15a], al
movzx eax, byte [rbx + 0x13]
mov qword [rsp + 0x68], 8
mov byte [rsp + 0x15b], al
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x88], rax
lea rax, [rsp + 0x60]
mov r8, rax
mov qword [rsp + 0x48], rax
call fcn.007d3e40
cmp qword [r15 + 0x20], rax
mov rbp, rax
je 0x5e6420
movzx r8d, word [rax + 0x20]
lea r14, [rax + 0x1c]
lea r12, [rsp + 0xd0]
mov rdx, r14
lea r13, [rsp + 0x160]
mov rcx, r12
lea rbx, [rsp + 0x100]
mov dword [rsp + 0x28], r8d
call fcn.00504180
mov rdx, r12
mov rcx, r13
call fcn.00503ce0
mov r8d, dword [rsp + 0x28]
mov rdx, r13
mov rcx, rbx
call fcn.00504d20
mov rdx, rsi
mov rcx, rbx
call fcn.00504f10
test al, al
je 0x5e6322
mov rax, qword [r15]
cmp qword [r15 + 8], rax
je 0x5e6340
lea rcx, [rdi + 0x78]
mov rdx, r14
call fcn.006a8c40
mov r8, qword [r15 + 0x20]
lea rax, [rbp + 0x28]
mov rdx, rax
cmp r8, rax
je 0x5e5edf
movabs r9, 0xcccccccccccccccd
mov rcx, r8
sub rcx, rax
mov rdx, rcx
sar rdx, 3
imul rdx, r9
test rdx, rdx
jle 0x5e66ba
add rcx, rbp
jmp 0x5e5ea6
add rax, 0x28
mov rdx, qword [rbp + 0x28]
cmp rax, rcx
mov qword [rbp], rdx
mov rdx, qword [rbp + 0x30]
mov qword [rbp + 8], rdx
mov rdx, qword [rbp + 0x38]
mov qword [rbp + 0x10], rdx
mov rdx, qword [rbp + 0x40]
mov qword [rbp + 0x18], rdx
mov edx, dword [rbp + 0x48]
mov dword [rbp + 0x20], edx
movzx edx, byte [rbp + 0x4c]
mov byte [rbp + 0x24], dl
mov rbp, rax
jne 0x5e5ea2
mov rdx, qword [r15 + 0x20]
mov rdi, qword [r15 + 8]
sub rdx, 0x28
mov rbx, qword [r15]
mov qword [r15 + 0x20], rdx
mov qword [rsp + 0xd8], 0x22
mov qword [rsp + 0xe8], 0x22
mov rdx, rdi
cmp rbx, rdi
je 0x5e6212
mov rsi, rdi
mov r14, qword [rsp + 0x48]
mov r8d, 0x3f
mov rcx, rbx
movabs rdx, 0xcccccccccccccccd
sub rsi, rbx
mov qword [rsp + 0x68], 0x22
mov qword [rsp + 0x78], 0x22
mov rax, rsi
sar rax, 3
imul rax, rdx
mov rdx, qword [rsp + 0xd0]
mov r9, r14
mov qword [rsp + 0x60], rdx
mov rdx, qword [rsp + 0xe0]
bsr rax, rax
xor rax, 0x3f
cdqe
mov qword [rsp + 0x70], rdx
mov rdx, qword [rsp + 0xf0]
sub r8, rax
add r8, r8
mov qword [rsp + 0x80], rdx
mov rdx, rdi
call fcn.007c64d0
mov r9, qword [rsp + 0xd0]
cmp rsi, 0x2a7
mov r8, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xe0]
mov rdx, qword [rsp + 0xe8]
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x100], r9
mov qword [rsp + 0x108], r8
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rdx
mov qword [rsp + 0x120], rax
jle 0x5e6658
lea rsi, [rbx + 0x280]
mov qword [rsp + 0x68], r8
mov r8, r14
mov qword [rsp + 0x70], rcx
mov rcx, rbx
mov qword [rsp + 0x78], rdx
mov rdx, rsi
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x80], rax
call fcn.007c27a0
cmp rdi, rsi
je 0x5e6684
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x50], rdi
movzx eax, byte [rsi + 0xf]
mov r15, qword [rsi]
movzx r14d, byte [rsi + 8]
movzx r13d, byte [rsi + 9]
mov byte [rsp + 0x42], al
movzx eax, byte [rsi + 0x10]
movzx r12d, byte [rsi + 0xa]
movzx ebp, byte [rsi + 0xb]
movzx edi, byte [rsi + 0xc]
mov byte [rsp + 0x28], al
movzx eax, byte [rsi + 0x11]
movzx ebx, byte [rsi + 0xd]
movzx r11d, byte [rsi + 0xe]
mov byte [rsp + 0x37], al
movzx eax, byte [rsi + 0x12]
mov byte [rsp + 0x38], al
movzx eax, byte [rsi + 0x13]
mov byte [rsp + 0x39], al
movzx eax, byte [rsi + 0x14]
mov byte [rsp + 0x3a], al
movzx eax, byte [rsi + 0x15]
mov byte [rsp + 0x3b], al
movzx eax, byte [rsi + 0x16]
mov byte [rsp + 0x3c], al
movzx eax, byte [rsi + 0x17]
mov byte [rsp + 0x3d], al
movzx eax, byte [rsi + 0x18]
mov byte [rsp + 0x3e], al
movzx eax, byte [rsi + 0x19]
mov byte [rsp + 0x3f], al
movzx eax, byte [rsi + 0x1a]
mov byte [rsp + 0x40], al
movzx eax, byte [rsi + 0x1b]
movzx r8d, word [rsi + 0x22]
cmp word [rsi - 6], r8w
movzx r10d, byte [rsi + 0x24]
mov byte [rsp + 0x41], al
movzx eax, byte [rsi + 0x1c]
mov r9d, r8d
mov byte [rsp + 0x47], al
movzx eax, byte [rsi + 0x1d]
mov byte [rsp + 0x36], al
movzx eax, byte [rsi + 0x1e]
mov byte [rsp + 0x43], al
movzx eax, byte [rsi + 0x1f]
mov byte [rsp + 0x46], al
movzx eax, word [rsi + 0x20]
mov word [rsp + 0x44], ax
jbe 0x5e6690
lea rax, [rsi - 0x28]
mov rcx, qword [rax]
mov rdx, rax
sub rax, 0x28
mov qword [rax + 0x50], rcx
mov rcx, qword [rax + 0x30]
mov qword [rax + 0x58], rcx
mov rcx, qword [rax + 0x38]
mov qword [rax + 0x60], rcx
mov rcx, qword [rax + 0x40]
mov qword [rax + 0x68], rcx
mov ecx, dword [rax + 0x48]
mov dword [rax + 0x70], ecx
movzx ecx, byte [rax + 0x4c]
mov byte [rax + 0x74], cl
movzx ecx, word [rdx - 6]
cmp r8d, ecx
jl 0x5e6103
movzx eax, byte [rsp + 0x42]
mov qword [rdx], r15
add rsi, 0x28
mov byte [rdx + 8], r14b
mov byte [rdx + 9], r13b
mov byte [rdx + 0xa], r12b
mov byte [rdx + 0xf], al
movzx eax, byte [rsp + 0x28]
mov byte [rdx + 0xb], bpl
mov byte [rdx + 0xc], dil
mov byte [rdx + 0xd], bl
mov byte [rdx + 0x10], al
movzx eax, byte [rsp + 0x37]
mov byte [rdx + 0xe], r11b
mov byte [rdx + 0x11], al
movzx eax, byte [rsp + 0x38]
mov byte [rdx + 0x12], al
movzx eax, byte [rsp + 0x39]
mov byte [rdx + 0x13], al
movzx eax, byte [rsp + 0x3a]
mov byte [rdx + 0x14], al
movzx eax, byte [rsp + 0x3b]
mov byte [rdx + 0x15], al
movzx eax, byte [rsp + 0x3c]
mov byte [rdx + 0x16], al
movzx eax, byte [rsp + 0x3d]
mov byte [rdx + 0x17], al
movzx eax, byte [rsp + 0x3e]
mov byte [rdx + 0x18], al
movzx eax, byte [rsp + 0x3f]
mov byte [rdx + 0x19], al
movzx eax, byte [rsp + 0x40]
mov byte [rdx + 0x1a], al
movzx eax, byte [rsp + 0x41]
cmp qword [rsp + 0x50], rsi
mov word [rdx + 0x22], r9w
mov byte [rdx + 0x24], r10b
mov byte [rdx + 0x1b], al
movzx eax, byte [rsp + 0x47]
mov byte [rdx + 0x1c], al
movzx eax, byte [rsp + 0x36]
mov byte [rdx + 0x1d], al
movzx eax, byte [rsp + 0x43]
mov byte [rdx + 0x1e], al
movzx eax, byte [rsp + 0x46]
mov byte [rdx + 0x1f], al
movzx eax, word [rsp + 0x44]
mov word [rdx + 0x20], ax
jne 0x5e6033
mov r15, qword [rsp + 0x58]
mov rdi, qword [r15]
mov rdx, qword [r15 + 8]
lea rax, [0x007099c0]
mov r8, qword [rsp + 0x48]
xor r9d, r9d
mov rcx, rdi
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x98], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x70], rax
call fcn.007d3c20
mov r8, qword [r15 + 8]
cmp r8, rax
je 0x5e66b2
mov rdx, qword [r15 + 0x20]
cmp rdx, qword [r15 + 0x28]
je 0x5e66ca
test rdx, rdx
je 0x5e62a6
mov rcx, qword [rax]
mov qword [rdx], rcx
mov rcx, qword [rax + 8]
mov qword [rdx + 8], rcx
mov rcx, qword [rax + 0x10]
mov qword [rdx + 0x10], rcx
mov rcx, qword [rax + 0x18]
mov qword [rdx + 0x18], rcx
mov rcx, qword [rax + 0x20]
mov qword [rdx + 0x20], rcx
mov rdx, qword [r15 + 0x20]
mov r8, qword [r15 + 8]
add rdx, 0x28
mov qword [r15 + 0x20], rdx
lea rdx, [rax + 0x28]
cmp r8, rdx
je 0x5e631a
movabs r9, 0xcccccccccccccccd
mov rcx, r8
sub rcx, rdx
mov rdx, rcx
sar rdx, 3
imul rdx, r9
test rdx, rdx
jle 0x5e66c2
add rcx, rax
nop
mov rdx, qword [rax + 0x28]
add rax, 0x28
mov qword [rax - 0x28], rdx
mov rdx, qword [rax + 8]
mov qword [rax - 0x20], rdx
mov rdx, qword [rax + 0x10]
mov qword [rax - 0x18], rdx
mov rdx, qword [rax + 0x18]
mov qword [rax - 0x10], rdx
mov edx, dword [rax + 0x20]
mov dword [rax - 8], edx
movzx edx, byte [rax + 0x24]
mov byte [rax - 4], dl
cmp rcx, rax
jne 0x5e62e0
mov rdx, qword [r15 + 8]
sub rdx, 0x28
mov qword [r15 + 8], rdx
add rsp, 0x198
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [rbp + 0x24]
lea edx, [rax + 2]
cmp dl, 1
ja 0x5e6698
cmp al, 0xff
jne 0x5e669e
mov rdx, r14
mov rcx, rbx
call fcn.00504180
mov rdx, rbx
mov rcx, r13
call fcn.00503ce0
mov rdx, r13
mov rcx, r12
call fcn.00503e30
mov rcx, r12
call fcn.005041b0
lea rcx, [rdi + 0x78]
mov rdx, rbx
mov dword [rsp + 0x100], eax
call fcn.006a8c40
mov r8, qword [r15 + 0x20]
lea rax, [rbp + 0x28]
mov rdx, rax
cmp r8, rax
je 0x5e640d
movabs r9, 0xcccccccccccccccd
mov rcx, r8
sub rcx, rax
mov rdx, rcx
sar rdx, 3
imul rdx, r9
test rdx, rdx
jle 0x5e66e9
add rcx, rbp
jmp 0x5e63d4
add rax, 0x28
mov rdx, qword [rbp + 0x28]
cmp rax, rcx
mov qword [rbp], rdx
mov rdx, qword [rbp + 0x30]
mov qword [rbp + 8], rdx
mov rdx, qword [rbp + 0x38]
mov qword [rbp + 0x10], rdx
mov rdx, qword [rbp + 0x40]
mov qword [rbp + 0x18], rdx
mov edx, dword [rbp + 0x48]
mov dword [rbp + 0x20], edx
movzx edx, byte [rbp + 0x4c]
mov byte [rbp + 0x24], dl
mov rbp, rax
jne 0x5e63d0
mov rdx, qword [r15 + 0x20]
sub rdx, 0x28
mov qword [r15 + 0x20], rdx
jmp 0x5e6322
movzx eax, byte [rbx + 6]
movzx edx, byte [rbx + 7]
movzx ecx, byte [rbx + 8]
movzx edi, byte [rbx + 3]
movzx r14d, byte [rbx + 9]
mov byte [rsp + 0x28], al
movzx r9d, byte [rbx + 0xa]
mov byte [rsp + 0x36], dl
movzx r8d, byte [rbx + 0xb]
mov byte [rsp + 0x37], cl
movzx eax, byte [rbx + 0xc]
movzx edx, byte [rbx + 0xd]
mov byte [rsp + 0x38], r14b
movzx ecx, byte [rbx + 0xe]
mov byte [rsp + 0x39], r9b
movzx r13d, byte [rbx]
mov byte [rsp + 0x3a], r8b
movzx r11d, byte [rbx + 4]
mov byte [rsp + 0x3b], al
movzx r10d, byte [rbx + 5]
mov byte [rsp + 0x3c], dl
movzx r9d, byte [rbx + 0xf]
mov byte [rsp + 0x3d], cl
movzx r8d, byte [rbx + 0x10]
movzx eax, byte [rbx + 0x11]
movzx r12d, byte [rbx + 1]
movzx ebp, byte [rbx + 2]
movzx r14d, byte [rbx + 0x12]
mov rdx, qword [r15 + 8]
movzx ebx, byte [rbx + 0x13]
mov rcx, qword [r15]
mov qword [rsp + 0x168], 8
mov byte [rsp + 0x178], r13b
mov byte [rsp + 0x17b], dil
movzx edi, byte [rsp + 0x28]
mov byte [rsp + 0x189], al
mov rax, qword [rsp + 0x160]
mov byte [rsp + 0x17c], r11b
mov byte [rsp + 0x17d], r10b
mov byte [rsp + 0x17e], dil
movzx edi, byte [rsp + 0x36]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x170]
mov byte [rsp + 0x187], r9b
xor r9d, r9d
mov byte [rsp + 0x188], r8b
mov byte [rsp + 0x17f], dil
movzx edi, byte [rsp + 0x37]
mov byte [rsp + 0x18b], bl
mov byte [rsp + 0x179], r12b
mov byte [rsp + 0x17a], bpl
mov byte [rsp + 0x180], dil
movzx edi, byte [rsp + 0x38]
mov byte [rsp + 0x18a], r14b
mov qword [rsp + 0x68], 8
mov byte [rsp + 0x181], dil
movzx edi, byte [rsp + 0x39]
mov byte [rsp + 0x182], dil
movzx edi, byte [rsp + 0x3a]
mov byte [rsp + 0x183], dil
movzx edi, byte [rsp + 0x3b]
mov byte [rsp + 0x184], dil
movzx edi, byte [rsp + 0x3c]
mov byte [rsp + 0x185], dil
movzx edi, byte [rsp + 0x3d]
mov byte [rsp + 0x186], dil
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x178]
mov r8, qword [rsp + 0x48]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x180]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0x88], rax
call fcn.007d3e40
cmp qword [r15 + 8], rax
mov rbx, rax
je 0x5e6322
movzx r12d, word [rax + 0x20]
lea rdi, [rsp + 0xd0]
lea rdx, [rax + 0x1c]
mov rcx, rdi
call fcn.00504180
lea rbp, [rsp + 0x100]
mov rdx, rdi
lea rdi, [rsp + 0xb0]
mov rcx, rbp
call fcn.00503ce0
mov r8d, r12d
mov rdx, rbp
mov rcx, rdi
call fcn.00504d20
mov rdx, rsi
mov rcx, rdi
call fcn.00504f10
test al, al
je 0x5e6322
movzx eax, byte [rbx + 0x24]
lea edx, [rax + 2]
cmp dl, 1
jbe 0x5e6322
add eax, 1
mov byte [rbx + 0x24], al
jmp 0x5e6322
mov qword [rsp + 0x68], r8
mov r8, qword [rsp + 0x48]
mov qword [rsp + 0x70], rcx
mov rcx, rbx
mov qword [rsp + 0x78], rdx
mov rdx, rdi
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x80], rax
call fcn.007c27a0
mov rdi, qword [r15]
mov rdx, qword [r15 + 8]
jmp 0x5e6212
mov rdx, rsi
jmp 0x5e613f
add eax, 1
mov byte [rbp + 0x24], al
mov rdx, qword [rdi]
movzx eax, al
cmp dword [rdx + 8], eax
jg 0x5e6322
jmp 0x5e6358
mov rax, qword [r15]
jmp 0x5e6265
mov rdx, r8
jmp 0x5e5edf
mov rdx, r8
jmp 0x5e631a
lea rcx, [r15 + 0x18]
mov rdx, rax
mov qword [rsp + 0x28], rax
call fcn.0078ed70
mov r8, qword [r15 + 8]
mov rax, qword [rsp + 0x28]
jmp 0x5e62ae
mov rdx, r8
jmp 0x5e640d