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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov edi, dword [rcx + 0x30]
test edi, edi
jne 0x439c6b
mov r13, rcx
mov eax, dword [rcx + 0x80]
xor edi, edi
cmp eax, r8d
jle 0x439c6b
mov r15d, edx
xor ebx, ebx
cmp edx, 1
setne bl
add ebx, r8d
movsxd r14, ebx
cmp ebx, eax
jge 0x439041
imul rbp, r14, 0x38
add rbp, 0x10
mov rsi, r14
nop
mov rax, qword [r13 + 0x78]
mov rcx, qword [rax + rbp]
call fcn.0043a5a0
add rsi, 1
movsxd rax, dword [r13 + 0x80]
add rbp, 0x38
cmp rsi, rax
jl 0x439020
mov dword [r13 + 0x80], ebx
cmp r15d, 1
jne 0x439116
mov r12, qword [r13 + 0x78]
imul rbp, r14, 0x38
cmp dword [r12 + rbp + 0x20], 0
je 0x439c6b
mov r14, qword [r13 + 0x58]
mov rax, qword [r14]
test rax, rax
je 0x439c6b
lea rcx, [0x005fc240]
cmp rax, rcx
jne 0x439c60
mov eax, dword [r12 + rbp + 0x1c]
mov rcx, qword [r13 + 0xc8]
movabs rdx, 0x4d6a6d5d5ab2f725
sub rcx, rdx
lea r15, [rcx + rdx]
add r15, 4
imul r15, rax
cmp qword [r14 + 0x18], r15
jle 0x439c60
test r15, r15
je 0x43979f
movsxd rsi, dword [r14 + 8]
mov rdi, qword [r14 + 0x10]
test rdi, rdi
sete al
setne cl
cmp r15, rsi
jle 0x439107
test cl, cl
je 0x439107
mov cl, 1
test cl, cl
je 0x439107
lea rdx, [rsi + rsi]
mov rcx, rsi
mov rdi, qword [rdi]
test rdi, rdi
sete al
cmp rdx, r15
setl bl
cmp bl, al
je 0x439107
add rcx, rsi
lea rbx, [rdx + rsi]
cmp rdx, r15
mov rdx, rbx
jl 0x4390e5
test al, al
je 0x439823
xor edi, edi
jmp 0x439c50
cmp qword [r13 + 0x128], 0
jne 0x43912e
mov rax, qword [r13 + 0x50]
cmp qword [rax], 0
je 0x439c6b
test ebx, ebx
je 0x439188
mov rsi, qword [r13 + 0x78]
test rsi, rsi
je 0x439188
add ebx, 0xffffffff
movsxd rax, ebx
imul rbx, rax, 0x38
mov edi, dword [rsi + rbx + 0x18]
mov ecx, 0x200
call fcn.00404550
test rax, rax
je 0x4395a9
mov r14, rax
lea rbp, [rsi + rbx]
add rsi, rbx
add rsi, 0x18
mov rcx, rax
add rcx, 4
xor ebx, ebx
mov r8d, 0x1fc
xor edx, edx
call fcn.005f4c10
mov dword [r14], edi
mov rcx, rbp
jmp 0x439193
lea rsi, [r13 + 0x24]
mov bl, 1
xor r14d, r14d
xor ecx, ecx
mov eax, dword [rsi]
mov dword [r13 + 0x20], eax
mov al, byte [r13 + 0x10]
mov byte [r13 + 0x17], al
test bl, bl
je 0x4393f7
mov r15, qword [r13 + 0x128]
test r15, r15
je 0x439456
mov eax, dword [r13 + 0x24]
mov dword [r13 + 0x20], eax
cmp byte [r15 + 0x40], 0
je 0x4395b3
mov r12d, dword [r15 + 0x58]
mov rcx, qword [r15 + 0x30]
mov rax, qword [rcx]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [r15 + 0x58], xmm1
movups xmmword [r15 + 0x48], xmm0
movups xmmword [r15 + 0x68], xmm2
mov eax, dword [r15 + 0x58]
lea edx, [rax + 1]
xor edi, edi
cmp edx, r12d
ja 0x4395be
movabs r14, 0xffffffff021
nop dword [rax]
mov ebp, edx
lea edx, [rax + 0x1001]
add rdx, r14
shr rdx, 0xc
test edx, edx
je 0x43923d
movsxd rbx, edx
add eax, 0x22
mov edx, eax
xor edx, 0xfffff000
and edx, eax
shl rdx, 2
add rdx, qword [rcx + rbx*8]
jmp 0x439253
mov rdx, qword [rcx]
mov eax, ebp
neg rax
shl rax, 2
sub rdx, rax
add rdx, 0x84
mov esi, dword [rdx]
mov rax, qword [r13 + 0x120]
mov rcx, qword [rax + 0x40]
xor edi, edi
mov edx, esi
xor r8d, r8d
call qword [0x005f60f0]
test rax, rax
je 0x439376
mov rcx, qword [r13 + 0x120]
mov rbx, qword [rax + 8]
cmp qword [rbx], 0
je 0x4392e8
add dword [rcx + 0x18], 1
movzx eax, word [rbx + 0x36]
add eax, 1
mov word [rbx + 0x36], ax
cmp ax, 1
jne 0x439304
mov ecx, dword [rbx + 0x34]
mov edx, ecx
xor edx, 0xfffd
mov rax, qword [rbx + 0x18]
test dx, cx
je 0x439389
mov rcx, qword [rbx + 0x40]
cmp qword [rax + 0x10], rbx
jne 0x4392c2
mov qword [rax + 0x10], rcx
mov rdx, qword [rbx + 0x38]
test rdx, rdx
je 0x43937c
mov qword [rdx + 0x40], rcx
mov rcx, qword [rbx + 0x40]
test rcx, rcx
jne 0x439385
mov qword [rax], rdx
jmp 0x439389
mov edx, esi
mov r8, rax
call fcn.00438100
test rax, rax
je 0x439376
mov rbx, rax
movzx eax, word [rax + 0x36]
cmp ax, 1
je 0x43929c
mov rcx, rbx
call fcn.00438160
mov edi, eax
test eax, eax
jne 0x43931c
mov rcx, rbx
call qword [r13 + 0x108]
mov eax, dword [rbx + 0x34]
mov ecx, eax
xor ecx, 0xffdf
test cx, ax
je 0x43936e
mov rax, qword [rbx + 0x28]
add dword [rax + 0x98], 0xffffffff
mov rcx, qword [rax + 0xa8]
mov qword [rbx + 0x20], rcx
mov qword [rax + 0xa8], rbx
mov rcx, qword [rax + 0x48]
mov edx, dword [rbx + 0x30]
mov r8, qword [rbx + 8]
add edx, 0xffffffff
imul rdx, qword [rax + 0xc8]
mov rax, qword [rcx]
call qword [rax + 0x90]
mov rax, qword [r13 + 0x70]
jmp 0x4393bb
mov rcx, rbx
call fcn.00430480
mov rax, qword [r13 + 0x70]
jmp 0x4393bb
mov qword [rax + 8], rcx
test rcx, rcx
je 0x4393ea
mov qword [rcx + 0x38], rdx
add dword [rax + 0x18], 0xffffffff
mov rcx, qword [rax + 0x40]
mov rdx, qword [rbx]
mov r8d, 1
call qword [0x005f60f8]
mov rax, qword [r13 + 0x70]
jmp 0x4393bb
mov dword [rax + 0x18], 1
mov rax, qword [rax + 0x40]
test rax, rax
jne 0x4393b0
lea edx, [rbp + 1]
test edi, edi
setne al
cmp edx, r12d
setbe cl
cmp cl, al
je 0x4395ba
cmp edx, r12d
ja 0x4395ba
mov rcx, qword [r15 + 0x30]
mov eax, ebp
jmp 0x439210
mov qword [rax], 0
mov byte [rax + 0x2d], 2
jmp 0x439389
mov dword [rsp + 0x3c], ebx
lea rbx, [r13 + 0x60]
mov r15, qword [r13 + 0x60]
cmp qword [r13 + 0x128], 0
mov qword [rsp + 0x58], rcx
jne 0x439467
mov rax, qword [rcx]
mov rsi, qword [rcx + 8]
test rsi, rsi
cmove rsi, r15
mov qword [rbx], rax
cmp rax, rsi
jge 0x439470
mov dword [rsp + 0x20], 1
mov rcx, r13
mov rdx, rbx
mov r8, r14
mov r9d, 1
call fcn.0043a920
test eax, eax
jne 0x43967d
mov rax, qword [rbx]
cmp rax, rsi
jl 0x439428
jmp 0x439470
mov dword [rsp + 0x3c], ebx
mov qword [rsp + 0x58], rcx
lea rbx, [r13 + 0x60]
mov r15, qword [r13 + 0x60]
mov qword [rbx], 0
xor eax, eax
xor edi, edi
cmp rax, r15
jge 0x43967f
movabs rax, 0x8a83a889bcee5c1e
add rax, r15
mov qword [rsp + 0x30], rax
jmp 0x4394a4
test edi, edi
jne 0x43967f
mov rax, qword [rbx]
cmp rax, r15
jge 0x4395a2
mov dword [rsp + 0x40], 0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov rcx, r13
xor edx, edx
mov r8, r15
lea r9, [rsp + 0x40]
call fcn.0043ae40
mov edi, eax
mov esi, dword [rsp + 0x40]
test esi, esi
jne 0x439523
mov edx, dword [r13 + 0xb8]
add rdx, qword [r13 + 0x68]
cmp rdx, qword [r13 + 0x60]
jne 0x439490
mov rcx, qword [r13 + 0xc8]
add rcx, 8
mov rax, qword [rsp + 0x30]
sub rax, rdx
movabs rdx, 0x8a83a889bcee5c1e
sub rax, rdx
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x439519
cqo
idiv rcx
mov rsi, rax
jmp 0x43951f
xor edx, edx
div ecx
mov esi, eax
mov dword [rsp + 0x40], esi
test edi, edi
sete al
test esi, esi
sete cl
cmp al, cl
je 0x439490
test edi, edi
jne 0x439490
xor ebp, ebp
mov r12d, 1
nop word cs:[rax + rax]
nop
mov rax, qword [rbx]
cmp rax, r15
jge 0x43949b
mov dword [rsp + 0x20], 1
mov rcx, r13
mov rdx, rbx
mov r8, r14
mov r9d, 1
call fcn.0043a920
mov edi, eax
test eax, eax
setne al
cmp r12d, esi
setb cl
cmp cl, al
je 0x439490
add ebp, 1
lea eax, [r12 + 1]
cmp r12d, esi
mov r12d, eax
jb 0x439550
jmp 0x439490
xor edi, edi
jmp 0x43967f
mov edi, 7
jmp 0x439c6b
xor edi, edi
jmp 0x439a7a
mov eax, dword [r15 + 0x58]
cmp r12d, eax
je 0x439a7a
test eax, eax
je 0x439a7a
add eax, 0x1000
movabs rcx, 0x6f33e55d55bd0880
add rax, rcx
movabs rbx, 0xffffffff021
add rbx, rax
sub rbx, rcx
mov rsi, rbx
shr rsi, 0xc
cmp dword [r15 + 0x28], esi
jle 0x439615
mov rax, qword [r15 + 0x30]
movsxd rcx, esi
mov r8, qword [rax + rcx*8]
mov qword [rsp + 0x48], r8
xor eax, eax
test r8, r8
jne 0x439632
lea r8, [rsp + 0x48]
mov rcx, r15
mov edx, esi
call fcn.00437250
mov r8, qword [rsp + 0x48]
test r8, r8
je 0x439a7a
lea r11, [r8 + 0x4000]
mov qword [rsp + 0x40], r11
test esi, esi
je 0x4399c3
add ebx, 0xfffff000
mov ebp, ebx
xor ebp, 0xfff
and ebp, ebx
mov ebx, ebp
not ebx
and ebx, 0xe1de8ef3
mov ecx, ebp
and ecx, 0x1e21710c
or ecx, ebx
xor ecx, 0xe1de812d
and ebp, 0xfde
or ebp, ecx
jmp 0x4399d1
mov edi, eax
cmp byte [rsp + 0x3c], 0
jne 0x4399ab
mov rax, qword [r13 + 0xc8]
mov rdx, qword [rsp + 0x58]
mov ebp, dword [rdx + 0x1c]
add rax, 4
imul rax, rbp
mov qword [rsp + 0x60], rax
mov r12, qword [r13 + 0x128]
test r12, r12
je 0x4396c4
mov eax, dword [rdx + 0x30]
cmp eax, dword [r12 + 0x88]
jne 0x4396d1
mov eax, dword [rdx + 0x24]
jmp 0x4396e5
test edi, edi
jne 0x4399ab
jmp 0x43996d
mov dword [rdx + 0x24], 0
mov eax, dword [r12 + 0x88]
mov dword [rdx + 0x30], eax
xor eax, eax
cmp eax, dword [r12 + 0x58]
jae 0x43996d
mov dword [r12 + 0x58], eax
mov ecx, dword [rdx + 0x28]
mov dword [r12 + 0x60], ecx
mov qword [rsp + 0x58], rdx
mov ecx, dword [rdx + 0x2c]
mov dword [r12 + 0x64], ecx
test eax, eax
je 0x439965
add eax, 0x1000
movabs rcx, 0xf72b41b6e3d881b6
add rax, rcx
movabs rdi, 0xffffffff021
add rdi, rax
sub rdi, rcx
mov rsi, rdi
shr rsi, 0xc
cmp dword [r12 + 0x28], esi
jle 0x43975a
mov rax, qword [r12 + 0x30]
movsxd rcx, esi
mov rcx, qword [rax + rcx*8]
mov qword [rsp + 0x48], rcx
xor eax, eax
test rcx, rcx
jne 0x439777
lea r8, [rsp + 0x48]
mov rcx, r12
mov edx, esi
call fcn.00437250
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x439965
lea rdx, [rcx + 0x4000]
mov qword [rsp + 0x40], rdx
test esi, esi
je 0x4398f8
add edi, 0xfffff000
or edi, 0xfde
and edi, 0xffffffde
jmp 0x439906
lea rax, [r14 + 0x10]
mov rbx, qword [r14 + 0x10]
test rbx, rbx
je 0x439c47
mov qword [rsp + 0x30], rax
xor edi, edi
jmp 0x4397cb
mov rcx, rsi
call qword [0x005f6038]
test rbx, rbx
je 0x4398ee
mov rsi, rbx
mov rbx, qword [rbx]
cmp dword [0x005f6010], 0
je 0x4397b9
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x4397ec
call qword [0x005f6090]
mov rcx, rsi
call qword [0x005f6048]
cdqe
sub qword [0x0213b040], rax
add qword [0x0213b088], 0xffffffffffffffff
mov rcx, rsi
call qword [0x005f6038]
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x4397c2
call qword [0x005f60a0]
jmp 0x4397c2
mov rbx, qword [rdi]
test rbx, rbx
je 0x4398e6
movabs rax, 0x64890eafca50eb5c
not rax
mov qword [rsp + 0x30], rax
jmp 0x439855
mov rcx, rsi
call qword [0x005f6038]
test rbx, rbx
je 0x4398e6
mov rsi, rbx
mov rbx, qword [rbx]
cmp dword [0x005f6010], 0
je 0x439843
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x439876
call qword [0x005f6090]
mov rcx, rsi
call qword [0x005f6048]
cdqe
mov rcx, qword [0x0213b040]
movabs rdx, 0xb6a67e1158e3fb69
add rcx, rdx
sub rcx, rax
sub rcx, rdx
mov qword [0x0213b040], rcx
mov rax, qword [0x0213b088]
movabs rcx, 0x64890eafca50eb5c
add rax, rcx
add rax, qword [rsp + 0x30]
mov qword [0x0213b088], rax
mov rcx, rsi
call qword [0x005f6038]
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x43984c
call qword [0x005f60a0]
jmp 0x43984c
mov rax, rdi
jmp 0x439c49
mov rax, qword [rsp + 0x30]
jmp 0x439c49
add rcx, 0x88
mov qword [rsp + 0x48], rcx
xor edi, edi
mov dword [rsp + 0x50], edi
test eax, eax
jne 0x439965
mov eax, dword [r12 + 0x58]
sub eax, edi
xor edi, edi
jmp 0x439926
add rdi, 2
cmp rdi, 0x2000
je 0x439953
movzx ebp, word [rdx + rdi*2]
cmp eax, ebp
jge 0x439934
mov word [rdx + rdi*2], 0
mov esi, edi
and esi, 1
mov rbp, rdi
xor rbp, 1
or rbp, rsi
movzx esi, word [rdx + rbp*2]
cmp eax, esi
jge 0x439919
mov word [rdx + rbp*2], 0
jmp 0x439919
cdqe
lea rcx, [rcx + rax*4]
sub edx, ecx
movsxd r8, edx
xor edx, edx
call fcn.005f4c10
mov rax, qword [rsp + 0x58]
mov ebp, dword [rax + 0x1c]
lea esi, [rbp - 1]
lea r12, [rsp + 0x60]
xor edi, edi
nop word [rax + rax]
add esi, 1
cmp esi, dword [r13 + 0x3c]
jae 0x4399ab
mov dword [rsp + 0x20], 1
mov rcx, r13
mov rdx, r12
mov r8, r14
xor r9d, r9d
call fcn.0043a920
add ebp, 1
test eax, eax
je 0x439980
mov edi, eax
mov rcx, r14
call fcn.0043a5a0
test edi, edi
jne 0x439c6b
mov qword [rbx], r15
jmp 0x439c69
add r8, 0x88
mov qword [rsp + 0x48], r8
xor ebp, ebp
mov dword [rsp + 0x50], ebp
test eax, eax
jne 0x439a7a
movabs r9, 0xa0f4381a81fa8a9d
mov r14d, dword [r15 + 0x58]
sub r14d, ebp
mov rbx, 0xffffffffffffffff
xor edx, edx
mov rax, r9
not rax
mov r10, r9
and r10, 0xfffffffffffffffe
jmp 0x439a17
add rdx, 2
add rbx, 0xfffffffffffffffe
cmp rdx, 0x2000
je 0x439a66
movzx ecx, word [r11 + rdx*2]
cmp r14d, ecx
jge 0x439a28
mov word [r11 + rdx*2], 0
mov rcx, rbx
and rcx, r9
mov rsi, rdx
and rsi, rax
or rsi, rcx
mov ebp, eax
and ebp, 1
or rbp, r10
xor rbp, rsi
mov esi, ebx
not esi
mov ecx, r9d
or ecx, eax
and ecx, esi
and ecx, 1
or rcx, rbp
movzx esi, word [r11 + rcx*2]
cmp r14d, esi
jge 0x439a06
mov word [r11 + rcx*2], 0
jmp 0x439a06
movsxd rax, r14d
lea rcx, [r8 + rax*4]
sub r11d, ecx
movsxd r8, r11d
xor edx, edx
call fcn.005f4c10
mov rcx, qword [r13 + 0x120]
call fcn.0043b210
mov r14, rax
test rax, rax
sete al
test edi, edi
sete cl
cmp cl, al
je 0x439c6b
test edi, edi
jne 0x439c6b
nop word cs:[rax + rax]
nop
mov esi, dword [r14 + 0x30]
mov r14, qword [r14 + 0x20]
mov rax, qword [r13 + 0x120]
mov rcx, qword [rax + 0x40]
xor edi, edi
mov edx, esi
xor r8d, r8d
call qword [0x005f60f0]
test rax, rax
je 0x439bda
mov rcx, qword [r13 + 0x120]
mov rbx, qword [rax + 8]
cmp qword [rbx], 0
je 0x439b4c
add dword [rcx + 0x18], 1
movzx eax, word [rbx + 0x36]
add eax, 1
mov word [rbx + 0x36], ax
cmp ax, 1
jne 0x439b68
mov ecx, dword [rbx + 0x34]
not ecx
or ecx, 0xfffd
mov rax, qword [rbx + 0x18]
cmp cx, 0xffff
je 0x439bed
mov rcx, qword [rbx + 0x40]
cmp qword [rax + 0x10], rbx
jne 0x439b26
mov qword [rax + 0x10], rcx
mov rdx, qword [rbx + 0x38]
test rdx, rdx
je 0x439be0
mov qword [rdx + 0x40], rcx
mov rcx, qword [rbx + 0x40]
test rcx, rcx
jne 0x439be9
mov qword [rax], rdx
jmp 0x439bed
mov edx, esi
mov r8, rax
call fcn.00438100
test rax, rax
je 0x439bda
mov rbx, rax
movzx eax, word [rax + 0x36]
cmp ax, 1
je 0x439aff
mov rcx, rbx
call fcn.00438160
mov edi, eax
test eax, eax
jne 0x439b80
mov rcx, rbx
call qword [r13 + 0x108]
mov eax, dword [rbx + 0x34]
not eax
or eax, 0xffdf
cmp ax, 0xffff
je 0x439bd2
mov rax, qword [rbx + 0x28]
add dword [rax + 0x98], 0xffffffff
mov rcx, qword [rax + 0xa8]
mov qword [rbx + 0x20], rcx
mov qword [rax + 0xa8], rbx
mov rcx, qword [rax + 0x48]
mov edx, dword [rbx + 0x30]
mov r8, qword [rbx + 8]
add edx, 0xffffffff
imul rdx, qword [rax + 0xc8]
mov rax, qword [rcx]
call qword [rax + 0x90]
mov rax, qword [r13 + 0x70]
jmp 0x439c1b
mov rcx, rbx
call fcn.00430480
mov rax, qword [r13 + 0x70]
jmp 0x439c1b
mov qword [rax + 8], rcx
test rcx, rcx
je 0x439c3a
mov qword [rcx + 0x38], rdx
add dword [rax + 0x18], 0xffffffff
mov rcx, qword [rax + 0x40]
mov rdx, qword [rbx]
mov r8d, 1
call qword [0x005f60f8]
mov rax, qword [r13 + 0x70]
jmp 0x439c1b
mov dword [rax + 0x18], 1
mov rax, qword [rax + 0x40]
test rax, rax
jne 0x439c10
test r14, r14
setne al
test edi, edi
setne cl
cmp al, cl
je 0x439c6b
test r14, r14
jne 0x439ab0
jmp 0x439c6b
mov qword [rax], 0
mov byte [rax + 0x2d], 2
jmp 0x439bed
xor edi, edi
mov qword [rax], 0
mov qword [r14 + 0x20], rdi
mov qword [r14 + 0x18], r15
xorps xmm0, xmm0
movups xmmword [r14 + 0x28], xmm0
mov eax, dword [r12 + rbp + 0x1c]
mov dword [r13 + 0x3c], eax
xor edi, edi
mov eax, edi
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret