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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
xor ebx, ebx
mov r10, r9
mov r14, rcx
mov rcx, qword [rdx + 0x20]
mov r9, r8
mov r12, rdx
mov ebp, ebx
mov word [rsp + 0x80], bx
lea esi, [rbx + 1]
lea r11d, [rbx + 0x40]
cmp dword [rdx + 0x14], ebx
jle 0x1400747e9
mov r8d, dword [r10 + 0x44]
add rcx, 0x30
mov edx, dword [rdx + 0x14]
cmp dword [rcx - 0x14], r8d
jne 0x1400747e1
test qword [rcx], r9
jne 0x1400747e1
movzx eax, word [rcx - 0x1c]
test eax, 0xfffff7ff
je 0x1400747e1
add ebp, esi
add rcx, r11
sub rdx, rsi
jne 0x1400747c9
mov r13, qword [rsp + 0xa0]
mov edi, ebx
mov r15d, 2
test r13, r13
je 0x140074843
mov r8d, ebx
cmp dword [r13], ebx
jle 0x14007483a
movsxd r11, dword [r13]
lea rcx, [r13 + 0x20]
mov rdx, rbx
mov r9, qword [rcx - 0x18]
cmp byte [r9], 0xa2
jne 0x14007483a
mov eax, dword [r10 + 0x44]
cmp dword [r9 + 0x28], eax
jne 0x14007483a
test byte [rcx], r15b
jne 0x14007483a
add r8d, esi
add rdx, rsi
add rcx, 0x28
cmp rdx, r11
jl 0x140074812
cmp r8d, dword [r13]
cmove edi, dword [r13]
mov rcx, qword [r14]
movsxd rsi, ebp
movsxd r15, edi
lea rdx, [rsi + rsi*4]
shl rdx, 2
add rdx, 0x70
lea rdx, [rdx + r15*8]
call fcn.140016a64
mov qword [rsp + 0x88], rax
mov r10, rax
test rax, rax
jne 0x140074887
lea rdx, str.out_of_memory
mov rcx, r14
call fcn.1400191b8
xor eax, eax
jmp 0x140074a38
lea r8, [rax + 0x70]
mov qword [r10 + 0x68], r14
lea rax, [rsi + rsi*2]
mov dword [r10], ebp
lea rsi, [r8 + rax*4]
mov dword [r10 + 0x10], edi
mov qword [r10 + 8], r8
lea rax, [rsi + r15*8]
mov qword [r10 + 0x20], rax
mov r11d, ebx
mov qword [r10 + 0x18], rsi
mov r14d, 1
mov qword [r10 + 0x60], r12
mov r9, qword [r12 + 0x20]
mov qword [rsp + 0x20], rsi
cmp dword [r12 + 0x14], ebx
jle 0x1400749fa
mov r13d, dword [rsp + 0x80]
lea esi, [r14 + 0x3f]
mov rdi, qword [rsp + 0x98]
lea r10d, [r14 + 1]
mov rbp, qword [rsp + 0x90]
add r8, 4
mov edx, 0x180
mov eax, dword [rdi + 0x44]
cmp dword [r9 + 0x1c], eax
jne 0x1400749cc
test qword [r9 + 0x30], rbp
jne 0x1400749cc
movzx ecx, word [r9 + 0x14]
test ecx, 0xfffff7ff
je 0x1400749cc
test byte [rdi + 0x3c], 8
je 0x140074939
mov rax, qword [r9]
test byte [rax + 4], r14b
jne 0x140074939
test dx, cx
jne 0x1400749cc
mov eax, dword [r9 + 0x28]
mov dword [r8 - 4], eax
mov eax, 0x1fff
mov dword [r8 + 4], r11d
movzx edx, word [r9 + 0x14]
and dx, ax
cmp dx, r14w
jne 0x140074992
movzx edx, r10w
mov byte [r8], dl
test dl, 0x3c
je 0x1400749c3
mov rcx, qword [r9]
mov rcx, qword [rcx + 0x18]
call fcn.1400424fc
cmp eax, r14d
jle 0x1400749c3
mov ecx, 0x10
cmp r11d, ecx
jge 0x140074987
movzx r13d, r13w
bts r13d, r11d
cmp dx, cx
jne 0x1400749b9
mov byte [r8], 8
jmp 0x1400749c3
cmp dx, si
jne 0x14007499d
mov al, byte [r9 + 0x17]
jmp 0x1400749b4
mov eax, 0x180
test ax, dx
je 0x14007495c
mov eax, 0x100
cmp dx, ax
setne al
add al, 0x47
mov byte [r8], al
jmp 0x1400749c3
cmp dx, 4
jne 0x1400749c3
mov byte [r8], 0x20
add r8, 0xc
mov edx, 0x180
add r11d, r14d
add r9, rsi
cmp r11d, dword [r12 + 0x14]
jl 0x1400748f9
mov r10, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x20]
mov dword [rsp + 0x80], r13d
mov r13, qword [rsp + 0xa0]
test r15, r15
jle 0x140074a23
lea rdx, [r13 + 0x20]
mov rax, qword [rdx - 0x18]
movsx ecx, word [rax + 0x2c]
mov dword [rsi + rbx*8], ecx
mov al, byte [rdx]
lea rdx, [rdx + 0x28]
and al, r14b
mov byte [rsi + rbx*8 + 4], al
add rbx, r14
cmp rbx, r15
jl 0x140074a03
mov rax, qword [rsp + 0xa8]
mov ecx, dword [rsp + 0x80]
mov word [rax], cx
mov rax, r10
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret