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

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rsi, qword [rcx + 0x10]
xor r12d, r12d
mov eax, 0xffffffff
mov r15d, r9d
mov dword [rbp - 0x50], eax
mov r13, rdx
mov rbx, rcx
test rsi, rsi
jne 0x1400553ac
call fcn.140041580
mov qword [rbx + 0x10], rax
mov rsi, rax
test rax, rax
je 0x14005538a
xor r9d, r9d
mov dword [rsp + 0x20], r12d
xor r8d, r8d
mov edx, 0x99
mov rcx, rax
call fcn.1400416c0
cmp qword [rbx + 0x1c0], r12
jne 0x1400553a0
mov rax, qword [rbx]
test byte [rax + 0x4c], 8
jne 0x1400553a0
mov byte [rbx + 0x23], 1
test rsi, rsi
je 0x140055688
mov eax, dword [rbp - 0x50]
inc dword [rbx + 0x70]
test byte [r13 + 4], 0x20
jne 0x140055423
mov rdi, qword [rbx + 0x10]
test rdi, rdi
jne 0x140055401
mov rcx, rbx
call fcn.140041580
mov qword [rbx + 0x10], rax
mov rdi, rax
test rax, rax
je 0x1400553eb
xor r9d, r9d
mov dword [rsp + 0x20], r12d
xor r8d, r8d
mov edx, 0x99
mov rcx, rax
call fcn.1400416c0
cmp qword [rbx + 0x1c0], r12
jne 0x140055401
mov rax, qword [rbx]
test byte [rax + 0x4c], 8
jne 0x140055401
mov byte [rbx + 0x23], 1
mov r8d, dword [rbx + 0x5c]
xor r9d, r9d
mov rcx, rdi
mov dword [rsp + 0x20], r12d
lea eax, [r8 + 1]
lea edx, [r9 + 0x2c]
mov dword [rbx + 0x5c], eax
call fcn.1400416c0
mov dword [rbp - 0x50], eax
cmp byte [rbx + 0x1f2], 2
jne 0x1400554a2
cmp byte [r13], 0x4b
lea rcx, [0x140149774]
lea r9, [0x140147d9c]
cmove r9, rcx
lea r8, [0x140149768]
test eax, eax
lea rcx, [0x140150e8f]
mov eax, dword [rbx + 0x204]
lea rdx, [0x140149748]
cmovns r8, rcx
mov dword [rsp + 0x20], eax
mov rcx, qword [rbx]
call fcn.140023ea0
mov r8d, dword [rbx + 0x200]
xor r9d, r9d
mov edx, 0x9b
mov dword [rsp + 0x20], r12d
mov rcx, rsi
mov rdi, rax
call fcn.1400416c0
mov r9d, 0xffffffff
mov r8, rdi
mov edx, eax
mov rcx, rsi
call fcn.140041d00
cmp byte [r13], 0x4b
je 0x14005558d
mov r9d, dword [rbx + 0x54]
mov rdi, qword [r13 + 0x20]
inc r9d
mov dword [rbx + 0x54], r9d
cmp byte [r13], 0x77
mov dword [rbp - 0x3c], r9d
mov byte [rbp - 0x3f], r12b
mov qword [rbp - 0x38], r12
jne 0x1400554d9
mov byte [rbp - 0x40], 0xa
mov dword [rbp - 0x38], r9d
jmp 0x1400554dd
mov byte [rbp - 0x40], 3
mov edx, 0x1c
mov dword [rsp + 0x20], r12d
mov ecx, 0x19
cmovne edx, ecx
xor r8d, r8d
mov rcx, rsi
call fcn.1400416c0
mov rdx, qword [rdi + 0x60]
mov rcx, qword [rbx]
call fcn.1400539d0
mov rcx, qword [rbx]
lea r8, [0x140124120]
mov r9d, 1
mov edx, 0x84
call fcn.1400530a0
mov r15, qword [rbx]
mov r14, rax
test rax, rax
jne 0x140055541
xor edx, edx
mov rcx, r15
call fcn.1400539d0
xor edx, edx
mov rcx, r15
call fcn.1400539d0
jmp 0x140055565
mov rcx, r14
call fcn.140053000
mov rax, qword [rbx]
mov r8d, dword [rax + 0x74]
cmp dword [r14 + 0x28], r8d
jle 0x140055565
lea rdx, [0x1401497e8]
mov rcx, rbx
call fcn.140024a60
lea r8, [rbp - 0x40]
mov qword [rdi + 0x60], r14
mov rdx, rdi
mov dword [rdi + 0xc], r12d
mov rcx, rbx
call fcn.140083d90
test eax, eax
jne 0x140055688
mov r12d, dword [rbp - 0x3c]
jmp 0x1400559fd
mov rcx, qword [r13 + 0x10]
call fcn.140052b00
mov byte [rbp + 0x40], al
mov r9d, r12d
mov eax, dword [rbx + 0x50]
mov edx, 0x39
mov dword [r13 + 0x2c], eax
mov rcx, rsi
inc dword [rbx + 0x50]
mov r8d, dword [r13 + 0x2c]
test r15d, r15d
mov dword [rsp + 0x20], r12d
sete r9b
call fcn.1400416c0
mov dword [rbp - 0x24], eax
mov r14d, 1
test r15d, r15d
je 0x1400555da
mov r15, r12
mov qword [rbp - 0x10], r12
jmp 0x140055636
mov rdi, qword [rbx]
mov edx, 0x3a
xor ecx, ecx
call fcn.1400221f0
mov qword [rbp - 0x10], rax
mov r15, rax
test rax, rax
je 0x140055632
xor eax, eax
xorps xmm0, xmm0
movups xmmword [r15], xmm0
movups xmmword [r15 + 0x10], xmm0
movups xmmword [r15 + 0x20], xmm0
mov qword [r15 + 0x30], rax
mov word [r15 + 0x38], ax
lea rax, [r15 + 0x30]
mov qword [r15 + 0x18], rax
mov dword [r15 + 6], 0x10001
movzx eax, byte [rdi + 0x4e]
mov byte [r15 + 4], al
mov qword [r15 + 0x10], rdi
mov dword [r15], r14d
jmp 0x140055636
mov byte [rdi + 0x51], r14b
test dword [r13 + 4], 0x800
je 0x1400556d5
mov eax, dword [r13 + 0x2c]
lea r8, [rbp - 0x40]
mov rdi, qword [r13 + 0x20]
mov rcx, rbx
mov dword [rbp - 0x3c], eax
mov rdx, rdi
movzx eax, byte [rbp + 0x40]
mov byte [rbp - 0x3f], al
mov byte [rbp - 0x40], 0xb
mov qword [rbp - 0x38], r12
mov dword [rdi + 0xc], r12d
call fcn.140083d90
test eax, eax
je 0x14005568f
test r15, r15
je 0x140055688
add dword [r15], 0xffffffff
jne 0x140055688
mov rcx, r15
call fcn.140021e30
xor eax, eax
jmp 0x140055a45
mov rax, qword [rdi]
mov rdx, qword [r13 + 0x10]
mov rcx, qword [rax + 8]
test dword [rdx + 4], 0x100
mov rdi, qword [rcx]
jne 0x1400556c4
test rdi, rdi
je 0x1400556b4
test dword [rdi + 4], 0x100
jne 0x1400556c1
mov rcx, rbx
call fcn.140052ba0
test rax, rax
jne 0x1400556cc
mov rdx, rdi
mov rcx, rbx
call fcn.140052ba0
mov qword [r15 + 0x20], rax
jmp 0x1400559a3
mov r14, qword [r13 + 0x20]
test r14, r14
je 0x1400559a3
movzx eax, byte [rbp + 0x40]
mov edx, 0x41
test al, al
mov ecx, eax
cmove ecx, edx
mov byte [rbp + 0x40], cl
test r15, r15
je 0x14005570a
mov rdx, qword [r13 + 0x10]
mov rcx, rbx
call fcn.140052ba0
mov qword [r15 + 0x20], rax
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x140055723
inc dword [rbx + 0x54]
mov ecx, dword [rbx + 0x54]
inc dword [rbx + 0x54]
mov edi, dword [rbx + 0x54]
mov dword [rbp - 0x48], ecx
jmp 0x14005574a
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov ecx, dword [rbx + rax*4 + 0x24]
mov dword [rbp - 0x48], ecx
test al, al
jne 0x14005573e
inc dword [rbx + 0x54]
mov edi, dword [rbx + 0x54]
jmp 0x14005574a
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov edi, dword [rbx + rax*4 + 0x24]
mov dword [rbp - 0x4c], edi
cmp dword [rbp + 0x58], r12d
je 0x14005576a
xor r8d, r8d
mov dword [rsp + 0x20], r12d
mov r9d, edi
mov rcx, rsi
lea edx, [r8 + 0x1c]
call fcn.1400416c0
mov eax, dword [r14]
mov rcx, qword [r14 + 8]
mov qword [rbp - 0x18], rcx
mov dword [rbp - 0x44], eax
test eax, eax
jle 0x14005592d
movsxd r15, dword [rbp - 0x50]
mov rdi, r15
mov qword [rbp - 0x20], r15
jmp 0x140055794
mov rdi, qword [rbp - 0x20]
mov r14, qword [rcx]
test rdi, rdi
js 0x1400557fc
xor r8d, r8d
mov rcx, r14
lea edx, [r8 + 1]
call fcn.140054960
test eax, eax
jne 0x1400557fc
cmp r15d, dword [rsi + 0x3c]
jge 0x1400557ee
mov rax, qword [rsi + 8]
lea rcx, [rdi + rdi*2]
movsx edx, byte [rax + rcx*8 + 1]
lea rdi, [rax + rcx*8]
mov r8, qword [rdi + 0x10]
mov rcx, qword [rsi]
call fcn.140041a40
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], rax
mov byte [rdi], 0x9a
mov eax, dword [rsi + 0x3c]
dec eax
cmp r15d, eax
jne 0x1400557ee
mov dword [rsi + 0x3c], eax
mov r15d, 0xffffffff
mov qword [rbp - 0x20], 0xffffffffffffffff
cmp dword [rbp + 0x58], r12d
je 0x140055878
test dword [r14 + 4], 0x400
je 0x140055821
mov eax, dword [r14 + 8]
mov edx, 0x54
mov dword [rbp - 0x50], eax
mov dword [rsp + 0x20], eax
jmp 0x1400558f7
movzx ecx, byte [r14]
sub ecx, 0x9d
je 0x140055854
cmp ecx, 1
jne 0x140055878
mov rcx, qword [r14 + 0x10]
lea rdx, [rbp - 0x50]
call fcn.140054a60
test eax, eax
je 0x140055878
mov eax, dword [rbp - 0x50]
mov edx, 0x54
mov dword [rsp + 0x20], eax
jmp 0x1400558f7
mov rcx, qword [r14 + 0x10]
lea rdx, [rbp - 0x28]
call fcn.140054a60
test eax, eax
je 0x140055878
mov eax, dword [rbp - 0x28]
mov edx, 0x54
neg eax
mov dword [rbp - 0x50], eax
mov dword [rsp + 0x20], eax
jmp 0x1400558f7
mov r8d, dword [rbp - 0x48]
mov rdx, r14
mov rcx, rbx
call fcn.140056ef0
mov edi, eax
mov r8d, eax
mov rcx, rsi
cmp dword [rbp + 0x58], r12d
je 0x1400558b7
mov r9d, dword [rsi + 0x3c]
mov edx, 0x26
add r9d, 2
mov dword [rsp + 0x20], r12d
call fcn.1400416c0
mov edx, 0x4b
mov dword [rsp + 0x20], edi
jmp 0x1400558f7
mov eax, dword [rbp - 0x4c]
mov r14d, 1
mov r9d, r14d
mov dword [rsp + 0x20], eax
lea edx, [r14 + 0x30]
call fcn.1400416c0
mov r9d, r14d
lea r8, [rbp + 0x40]
mov edx, eax
mov rcx, rsi
call fcn.140041d00
mov r8d, r14d
mov edx, edi
mov rcx, rbx
call fcn.140056610
lea edx, [r14 + 0x6d]
mov dword [rsp + 0x20], r12d
mov edi, dword [rbp - 0x4c]
mov rcx, rsi
mov r8d, dword [r13 + 0x2c]
mov r9d, edi
call fcn.1400416c0
mov eax, dword [rbp - 0x44]
mov rcx, qword [rbp - 0x18]
dec eax
add rcx, 0x28
mov dword [rbp - 0x44], eax
mov qword [rbp - 0x18], rcx
test eax, eax
jg 0x140055790
mov dword [rbp - 0x50], r15d
mov r15, qword [rbp - 0x10]
mov r8d, dword [rbp - 0x48]
test r8d, r8d
je 0x14005596f
movzx edx, byte [rbx + 0x1f]
cmp dl, 8
jae 0x14005596f
mov ecx, r12d
lea rax, [rbx + 0x88]
nop dword [rax]
cmp dword [rax + 0xc], r8d
je 0x14005596b
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x140055950
mov dword [rbx + rdx*4 + 0x24], r8d
inc byte [rbx + 0x1f]
jmp 0x14005596f
mov byte [rax + 6], 1
test edi, edi
je 0x1400559a3
movzx edx, byte [rbx + 0x1f]
cmp dl, 8
jae 0x1400559a3
mov ecx, r12d
lea rax, [rbx + 0x88]
cmp dword [rax + 0xc], edi
je 0x14005599f
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x140055986
mov dword [rbx + rdx*4 + 0x24], edi
inc byte [rbx + 0x1f]
jmp 0x1400559a3
mov byte [rax + 6], 1
test r15, r15
je 0x1400559fd
mov r8, qword [rsi + 8]
mov rcx, qword [rsi]
test r8, r8
je 0x1400559f0
cmp byte [rcx + 0x51], r12b
jne 0x1400559f0
mov eax, dword [rbp - 0x24]
test eax, eax
jns 0x1400559c6
mov eax, dword [rsi + 0x3c]
dec eax
cdqe
lea rdx, [rax + rax*2]
lea rdi, [r8 + rdx*8]
movsx edx, byte [r8 + rdx*8 + 1]
mov r8, qword [rdi + 0x10]
call fcn.140041a40
mov qword [rdi + 0x10], r15
mov byte [rdi + 1], 0xfa
jmp 0x1400559fd
mov r8, r15
mov edx, 0xfffffffa
call fcn.140041a40
mov eax, dword [rbp + 0x50]
test eax, eax
je 0x140055a13
mov edx, dword [r13 + 0x2c]
mov r8d, eax
mov rcx, rsi
call fcn.140054c20
mov ecx, dword [rbp - 0x50]
test ecx, ecx
js 0x140055a3a
mov eax, dword [rsi + 0x3c]
cmp eax, ecx
jbe 0x140055a30
lea rdx, [rcx + rcx*2]
mov rcx, qword [rsi + 8]
mov dword [rcx + rdx*8 + 8], eax
mov eax, dword [rsi + 0x3c]
mov rcx, qword [rsi + 0x30]
lea edx, [rax - 1]
mov dword [rcx + 0x64], edx
mov rcx, rbx
call fcn.140056840
mov eax, r12d
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret