Function at 0x14005560c
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, 0x38
mov eax, 0x7f2bb712
mov dword [rsp + 0x88], edx
mov rsi, rcx
mov r13, r8
test rcx, rcx
je 0x140055aa6
cmp dword [rcx], 0x7f2bb712
jne 0x140055aa6
cmp qword [rcx + 0xb0], 0
jne 0x140055657
mov eax, 0x7f2bb780
jmp 0x140055aa6
mov eax, dword [rsp + 0x88]
xor r12d, r12d
and eax, 0xf
mov dword [rsp + 0x24], eax
mov ebp, eax
sub eax, 7
mov dword [rsp + 0x28], eax
and eax, 0xfffffffd
mov dword [rsp + 0x2c], eax
movsxd rbx, dword [rsi + 0xa4]
mov r8, qword [rsi + 0xb0]
mov rax, rbx
imul rbx, rbx, 0x30
add rbx, r8
cmp dword [rsp + 0x2c], 0
jne 0x1400556d1
cmp eax, dword [rsi + 0xa8]
jge 0x1400556b3
cmp dword [rbx + 0x14], 0
jne 0x1400556b3
mov dword [rbx + 0x14], 1
mov ebp, 0xc
jmp 0x1400556d1
cmp dword [rbx + 0x10], 0
mov ebp, 5
jg 0x1400556d1
test eax, eax
jg 0x1400556cc
mov eax, 0x7f2bb77c
jmp 0x140055aa6
mov ebp, 0xb
mov ecx, dword [rsp + 0x88]
and ecx, 0xd
cmp ecx, 8
jne 0x140055713
cmp eax, dword [rsi + 0xa8]
jge 0x1400556f7
cmp dword [rbx + 0x14], 0
mov ebp, 0xd
jg case.0x14005574e.12
mov edi, dword [rbx + 8]
lea edx, [rdi - 1]
cmp dword [rbx + 0x10], edx
jl case.0x14005574e.6
test eax, eax
jg 0x14005581a
jmp 0x140055a84
cmp dword [rsp + 0x24], 2
jne 0x140055735
cmp eax, dword [rsi + 0xa8]
jge case.0x14005574e.4
cmp dword [rbx + 0x10], 0
je 0x14005583b
jmp case.0x14005574e.4
cmp ebp, 0xd
ja case.0x14005574e.2
lea r9, [0x1400a5d80]
mov edx, ebp
movsxd rdx, dword [r9 + rdx*4]
add rdx, r9
jmp rdx
mov r8, qword [rbx + 0x28]
mov r14, rbx
jmp 0x1400559a8
xor eax, eax
mov rbx, r8
mov dword [rsi + 0xa4], eax
mov eax, dword [rbx + 8]
xor r15d, r15d
mov qword [rbx + 0x28], r15
mov dword [rbx + 0x10], eax
mov eax, dword [rbx + 0x10]
test eax, eax
jle 0x1400556c2
mov r8, qword [rbx + 0x28]
test r8, r8
je 0x14005578e
add r8, 0xc
jmp 0x140055795
mov rdi, qword [rbx]
lea r8, [rdi + 0xc]
xor r14d, r14d
dec eax
mov qword [rbx + 0x28], r8
mov dword [rbx + 0x14], r14d
mov r14, rbx
mov dword [rbx + 0x10], eax
jmp 0x1400559b1
mov r8, qword [rbx + 0x28]
test r8, r8
je 0x140055a84
mov edi, dword [rbx + 0x10]
lea edx, [rdi + 1]
cmp edx, dword [rbx + 8]
jge 0x140055a84
sub r8, 0xc
mov dword [rbx + 0x10], edx
mov qword [rbx + 0x28], r8
cmp eax, dword [rsi + 0xa8]
jge 0x140055a99
mov dword [rbx + 0x14], 1
jmp 0x140055a99
mov r8, qword [rbx]
xor edi, edi
mov r14, rbx
mov ebp, 4
movzx eax, word [r8 + 2]
mov qword [rbx + 0x10], rdi
imul rax, rax, 0xc
add r8, rax
mov qword [rbx + 0x28], r8
jmp 0x1400559b1
test eax, eax
jle 0x140055a8b
dec eax
mov r8, qword [rbx - 8]
mov dword [rsi + 0xa4], eax
cmp ecx, 8
jne 0x140055998
xor r11d, r11d
mov dword [rbx - 0x1c], r11d
jmp 0x140055998
mov ebp, 0xc
mov r15, qword [rbx + 0x28]
test r15, r15
je 0x140055a92
cmp eax, dword [rsi + 0xa8]
jge 0x140055a92
cmp qword [rbx + 0x30], 0
mov rax, qword [rsi + 8]
lea r14, [rbx + 0x30]
je 0x140055886
mov r8, qword [rsi + 8]
mov eax, dword [r15 + 4]
movzx edx, word [r15 + 8]
mov r9, qword [rbx + 0x30]
mov rcx, qword [r8 + 8]
test byte [r8 + 0x11], 0x20
jne 0x14005589a
jmp 0x1400558b0
mov ecx, dword [rax + 0x28]
mov rdx, r14
call fcn.14005a7f5
test eax, eax
je 0x140055868
jmp 0x140055aa6
cmp qword [r8 + 0xe8], rcx
je 0x1400558b0
mov ecx, dword [r8 + 0x28]
xor eax, eax
mov rdi, r9
rep stosb byte [rdi], al
jmp 0x1400558ca
shl rdx, 0x20
mov r8d, 1
add rdx, rax
call fcn.14005c994
test eax, eax
jne 0x140055aa6
mov r11d, dword [rsi + 0xa4]
mov r10, qword [rsi + 8]
mov rdi, qword [rbx + 0x30]
lea eax, [r11 + 1]
mov edx, dword [r10 + 0x28]
mov dword [rsi + 0xa4], eax
mov rcx, rdi
call fcn.1400553a6
test eax, eax
je 0x1400558ff
mov dword [rsi + 0xa4], r11d
jmp 0x140055aa6
test byte [r10 + 0x12], 0x20
jne 0x14005591f
mov edx, dword [rsi + 0x10]
mov r8, rdi
mov rcx, r10
call fcn.140054867
test eax, eax
mov eax, 1
cmove r12d, eax
movzx r9d, word [rdi + 2]
movzx edx, word [rdi + 4]
cmp dword [rbx + 0x10], 0
mov dword [rbx + 0x38], r9d
mov rax, r9
mov dword [rbx + 0x40], r9d
mov dword [rbx + 0x3c], edx
jle 0x140055942
mov edx, dword [r15 + 0xc]
jmp 0x140055946
mov rdx, qword [rbx + 0x20]
mov qword [rbx + 0x50], rdx
mov ecx, dword [rsi + 0xa4]
mov edx, dword [rsi + 0xa8]
cmp ebp, 0xc
jne 0x140055973
lea r8, [rdi + 0xc]
dec r9d
xor r10d, r10d
mov qword [rbx + 0x58], r8
mov dword [rbx + 0x40], r9d
mov dword [rbx + 0x44], r10d
jmp 0x1400559b1
imul rax, rax, 0xc
xor r9d, r9d
mov dword [rbx + 0x40], r9d
lea r8, [rdi + rax]
mov qword [rbx + 0x58], r8
cmp ecx, edx
jge 0x1400559a3
mov dword [rbx + 0x44], 1
mov ebp, 0xd
jmp 0x1400559b1
lea r14, [rbx - 0x30]
mov ebp, 0xb
jmp 0x1400559a8
mov ebp, 0xd
test r8, r8
je 0x14005564d
mov ebx, dword [r8]
mov ecx, dword [rsi + 0xa4]
xor eax, eax
mov edx, dword [rsi + 0xa8]
mov dword [r13 + 0x14], eax
mov r9, rbx
cmp ecx, edx
jne 0x140055a10
movzx eax, word [r8 + 6]
mov r9d, dword [r8 + 8]
mov qword [r13 + 8], rbx
shl rax, 0x20
add rax, r9
mov qword [r13], rax
movzx eax, word [r8 + 4]
mov dword [r13 + 0x14], 1
mov dword [r13 + 0x10], eax
cmp eax, 0x8000
jbe 0x140055a40
sub eax, 0x8000
mov dword [r13 + 0x14], 3
mov dword [r13 + 0x10], eax
jmp 0x140055a40
movzx eax, word [r8 + 8]
mov r15d, dword [r8 + 4]
mov qword [r13 + 8], rbx
shl rax, 0x20
add rax, r15
cmp dword [r14 + 0x10], 0
mov qword [r13], rax
jle 0x140055a35
mov eax, dword [r8 + 0xc]
jmp 0x140055a39
mov rax, qword [r14 + 0x20]
sub eax, r9d
mov dword [r13 + 0x10], eax
cmp dword [r14 + 0x14], 0
je 0x140055a4c
or dword [r13 + 0x14], 4
cmp dword [rsp + 0x28], 1
ja 0x140055a57
cmp ecx, edx
jmp 0x140055a6b
cmp dword [rsp + 0x24], 2
jne 0x140055a71
cmp ecx, edx
jne 0x140055678
cmp dword [r14 + 0x10], 0
jne 0x140055678
neg r12d
sbb eax, eax
and eax, 0x7f2bb794
jmp 0x140055aa6
mov eax, 0x7f2bb781
jmp 0x140055aa6
mov eax, 0x7f2bb77d
jmp 0x140055aa6
mov eax, 0x7f2bb77e
jmp 0x140055aa6
mov eax, 0x7f2bb77f
jmp 0x140055aa6
mov r14, rbx
mov ebp, 6
jmp 0x1400559b1
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret