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

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x20
mov rbx, r8
mov rdi, r9
movzx r8d, dl
mov rsi, rcx
mov eax, dword [rbx]
test eax, eax
jne 0x14002458f
mov ecx, 0xc8
mov eax, 0x8007007a
mov dword [rbx], ecx
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
cmp eax, 0xbc
jae 0x1400245a9
mov dword [rbx], 0xbc
mov eax, 0x8007007a
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
test rdi, rdi
jne 0x1400245bb
mov eax, 0x80070057
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
mov rax, qword [rcx + 0xe40]
mov qword [r9], rax
mov eax, dword [r9 + 8]
xor eax, dword [rcx + 0xe48]
and eax, 1
mov qword [rsp + 0x40], rbp
xor eax, dword [r9 + 8]
mov dword [r9 + 8], eax
mov ecx, eax
xor ecx, dword [rsi + 0xe48]
and ecx, 2
mov qword [rsp + 0x48], r14
xor ecx, eax
mov dword [r9 + 8], ecx
mov eax, ecx
xor eax, dword [rsi + 0xe48]
and eax, 4
xor eax, ecx
mov dword [r9 + 8], eax
mov ecx, eax
xor ecx, dword [rsi + 0xe48]
and ecx, 8
xor ecx, eax
mov dword [r9 + 8], ecx
mov eax, ecx
xor eax, dword [rsi + 0xe48]
and eax, 0x10
xor eax, ecx
xor ecx, ecx
mov dword [r9 + 8], eax
mov edx, dword [rsi + 0xe48]
add edx, edx
xor edx, eax
and edx, 0x40
xor edx, eax
mov dword [r9 + 8], edx
mov r9d, 0x20
movzx eax, byte [rsi + 0x132]
and al, 0x18
cmp al, 0x10
cmove ecx, r9d
and edx, 0xffffffdf
or ecx, edx
mov dword [rdi + 8], ecx
mov eax, dword [rsi + 0x1c8]
mov dword [rdi + 0xc], eax
mov eax, dword [rsi + 0x1d8]
mov dword [rdi + 0x10], eax
mov eax, dword [rsi + 0x1e0]
mov dword [rdi + 0x14], eax
mov r11, qword [rsi + 0xe50]
mov qword [rdi + 0x18], r11
mov rbp, qword [rsi + 0xe58]
mov qword [rdi + 0x20], rbp
mov r14, qword [rsi + 0xe60]
mov qword [rdi + 0x28], r14
mov eax, dword [rsi + 0xe88]
mov dword [rdi + 0x30], eax
mov eax, dword [rsi + 0xe8c]
mov dword [rdi + 0x34], eax
mov eax, dword [rsi + 0xe90]
mov dword [rdi + 0x38], eax
movzx eax, word [rsi + 0x140]
mov word [rdi + 0x3c], ax
mov rax, qword [rsi + 0xe98]
mov qword [rdi + 0x40], rax
mov rax, qword [rsi + 0xea0]
mov qword [rdi + 0x48], rax
mov rax, qword [rsi + 0xea8]
mov qword [rdi + 0x50], rax
mov rax, qword [rsi + 0xeb0]
mov qword [rdi + 0x58], rax
mov rax, qword [rsi + 0xeb8]
mov qword [rdi + 0x60], rax
mov rax, qword [rsi + 0xec0]
mov qword [rdi + 0x68], rax
mov eax, dword [rsi + 0xec8]
mov dword [rdi + 0x70], eax
mov eax, dword [rsi + 0xed0]
mov dword [rdi + 0x74], eax
mov rax, qword [rsi + 0xed8]
mov qword [rdi + 0x78], rax
mov rax, qword [rsi + 0xee0]
mov qword [rdi + 0x80], rax
mov rax, qword [rsi + 0xee8]
mov qword [rdi + 0x88], rax
mov rax, qword [rsi + 0xef0]
mov qword [rdi + 0x90], rax
mov rax, qword [rsi + 0xf10]
mov qword [rdi + 0x98], rax
mov rax, qword [rsi + 0xf18]
mov qword [rdi + 0xa0], rax
mov rax, qword [rsi + 0xef8]
mov qword [rdi + 0xa8], rax
mov rax, qword [rsi + 0xf08]
mov qword [rdi + 0xb0], rax
mov eax, dword [rsi + 0xf20]
mov dword [rdi + 0xb8], eax
test r8b, r8b
je 0x14002487a
mov r9, qword [0x1400f8b08]
mov r10, r11
shr r10, 0x20
imul r10, r9
mov qword [rsp + 0x50], r15
movabs r15, 0x431bde82d7b634db
mov rax, r15
mul r10
mov eax, r11d
imul rax, r9
mov r8, rdx
xor edx, edx
shr r8, 0x12
imul rcx, r8, 0xf4240
shl r8, 0x20
sub r10, rcx
shl r10, 0x20
add rax, r10
mov r10, rbp
div r9
shr r10, 0x20
add rax, r8
mov qword [rdi + 0x18], rax
mov rax, r15
mov r9, qword [0x1400f8b08]
imul r10, r9
mul r10
mov eax, ebp
imul rax, r9
mov r8, rdx
xor edx, edx
shr r8, 0x12
imul rcx, r8, 0xf4240
shl r8, 0x20
sub r10, rcx
shl r10, 0x20
add rax, r10
mov r10, r14
div r9
shr r10, 0x20
add rax, r8
mov qword [rdi + 0x20], rax
mov rax, r15
mov r9, qword [0x1400f8b08]
mov r15, qword [rsp + 0x50]
imul r10, r9
mul r10
mov eax, r14d
mov r8, rdx
xor edx, edx
shr r8, 0x12
imul rcx, r8, 0xf4240
imul rax, r9
sub r10, rcx
shl r8, 0x20
shl r10, 0x20
add rax, r10
div r9
add rax, r8
mov qword [rdi + 0x28], rax
cmp dword [rbx], 0xc0
mov r14, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x40]
jb 0x1400248a3
lea rcx, [rsi + 0x880]
mov rax, qword [rcx + 0x70]
call qword [case.0x1400639e1.0]
mov dword [rdi + 0xbc], eax
cmp dword [rbx], 0xc4
jb 0x1400248b7
mov eax, dword [rsi + 0xf24]
mov dword [rdi + 0xc0], eax
mov ecx, 0xc8
cmp dword [rbx], ecx
jb 0x1400248ce
mov eax, dword [rsi + 0xecc]
mov dword [rdi + 0xc4], eax
cmp dword [rbx], ecx
cmovb ecx, dword [rbx]
xor eax, eax
mov dword [rbx], ecx
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x20
lea eax, [rdx - 0x5000000]
mov rbx, r8
mov r11, r9
mov r8d, edx
mov rdi, rcx
cmp eax, 0x18
ja case.0x140024917.83886096
lea rcx, [0x140000000]
mov r10d, dword [rcx + rax*4 + 0x25078]
add r10, rcx
jmp r10
cmp dword [rbx], 4
jae 0x140024935
mov dword [rbx], 4
mov eax, 0x8007007a
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
test r11, r11
je case.0x140024917.83886096
mov dword [rbx], 4
mov eax, dword [rdi + 0xe4c]
bswap eax
mov dword [r9], eax
xor eax, eax
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
cmp dword [rbx], 0x1c
jae 0x140024977
mov dword [rbx], 0x1c
mov eax, 0x8007007a
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
test r11, r11
je case.0x140024917.83886096
test byte [rdi + 0xf2], 4
jne 0x140024999
mov eax, 0x8007139f
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
mov dword [rbx], 0x1c
movups xmm0, xmmword [rdi + 0x184]
movups xmmword [r9], xmm0
movsd xmm1, qword [rdi + 0x194]
movsd qword [r9 + 0x10], xmm1
mov eax, dword [rdi + 0x19c]
mov dword [r9 + 0x18], eax
xor eax, eax
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
cmp dword [rbx], 0x1c
jb 0x140024961
test r11, r11
je case.0x140024917.83886096
test byte [rdi + 0xf2], 8
je 0x140024989
mov dword [rbx], 0x1c
movups xmm0, xmmword [rdi + 0x168]
movups xmmword [r9], xmm0
movsd xmm1, qword [rdi + 0x178]
movsd qword [r9 + 0x10], xmm1
mov eax, dword [rdi + 0x180]
mov dword [r9 + 0x18], eax
xor eax, eax
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
cmp dword [rbx], 2
jae 0x140024a37
mov dword [rbx], 2
mov eax, 0x8007007a
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
test r11, r11
je case.0x140024917.83886096
mov dword [rbx], 2
mov rax, qword [rdi + 0x40]
mov rdx, qword [0x1400f75a0]
movzx ecx, word [rax + 0x3c]
test rdx, rdx
je 0x140024a65
cmp dword [rdx + 8], 0
je 0x140024a65
movzx ecx, word [rdx + rcx*2 + 0xc]
mov word [r9], cx
xor eax, eax
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
lea rcx, [rdi + 0x58]
mov r8, r11
mov rdx, rbx
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
jmp fcn.14002dec0
lea rcx, [rdi + 0x58]
mov r8, r11
mov rdx, rbx
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
jmp fcn.14002e4c0
cmp dword [rbx], 0xc8
jae 0x140024ac6
mov dword [rbx], 0xc8
mov eax, 0x8007007a
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
test r11, r11
je case.0x140024917.83886096
mov rax, qword [rdi + 0xe40]
mov qword [r9], rax
mov eax, dword [rdi + 0xe48]
xor eax, dword [r9 + 8]
and eax, 1
mov qword [rsp + 0x30], rbp
xor eax, dword [r9 + 8]
mov dword [r9 + 8], eax
mov ecx, eax
xor ecx, dword [rdi + 0xe48]
and ecx, 2
mov qword [rsp + 0x38], rsi
xor ecx, eax
mov qword [rsp + 0x40], r14
mov dword [r9 + 8], ecx
mov edx, ecx
xor edx, dword [rdi + 0xe48]
and edx, 4
xor edx, ecx
mov dword [r9 + 8], edx
mov eax, edx
xor eax, dword [rdi + 0xe48]
and eax, 8
xor eax, edx
mov dword [r9 + 8], eax
mov eax, dword [rdi + 0x1c8]
mov dword [r9 + 0xc], eax
mov eax, dword [rdi + 0x1d8]
mov dword [r9 + 0x10], eax
mov eax, dword [rdi + 0x1e0]
mov dword [r9 + 0x14], eax
mov rsi, qword [rdi + 0xe50]
mov qword [r9 + 0x18], rsi
mov rbp, qword [rdi + 0xe58]
mov qword [r9 + 0x20], rbp
mov r14, qword [rdi + 0xe60]
mov qword [r9 + 0x28], r14
mov eax, dword [rdi + 0xe88]
mov dword [r9 + 0x30], eax
mov eax, dword [rdi + 0xe8c]
mov dword [r9 + 0x34], eax
mov eax, dword [rdi + 0xe90]
mov dword [r9 + 0x38], eax
movzx eax, word [rdi + 0x140]
mov word [r9 + 0x40], ax
mov rax, qword [rdi + 0xe98]
mov qword [r9 + 0x48], rax
mov rax, qword [rdi + 0xea0]
mov qword [r9 + 0x50], rax
mov rax, qword [rdi + 0xea8]
mov qword [r9 + 0x58], rax
mov rax, qword [rdi + 0xeb0]
mov qword [r9 + 0x60], rax
mov rax, qword [rdi + 0xeb8]
mov qword [r9 + 0x68], rax
mov rax, qword [rdi + 0xec0]
mov qword [r9 + 0x70], rax
mov eax, dword [rdi + 0xec8]
mov dword [r9 + 0x78], eax
mov eax, dword [rdi + 0xed0]
mov dword [r9 + 0x7c], eax
mov rax, qword [rdi + 0xed8]
mov qword [r9 + 0x80], rax
mov rax, qword [rdi + 0xee0]
mov qword [r9 + 0x88], rax
mov rax, qword [rdi + 0xee8]
mov qword [r9 + 0x90], rax
mov rax, qword [rdi + 0xef0]
mov qword [r9 + 0x98], rax
mov rax, qword [rdi + 0xf10]
mov qword [r9 + 0xa0], rax
mov rax, qword [rdi + 0xf18]
mov qword [r9 + 0xa8], rax
mov rax, qword [rdi + 0xef8]
mov qword [r9 + 0xb0], rax
mov rax, qword [rdi + 0xf08]
mov qword [r9 + 0xb8], rax
mov eax, dword [rdi + 0xf20]
mov dword [r9 + 0xc0], eax
cmp r8d, 0x5000006
jne 0x140024d56
mov r9, qword [0x1400f8b08]
movabs rdi, 0x431bde82d7b634db
mov r10, rsi
mov rax, rdi
shr r10, 0x20
imul r10, r9
mul r10
mov eax, esi
imul rax, r9
mov r8, rdx
xor edx, edx
shr r8, 0x12
imul rcx, r8, 0xf4240
shl r8, 0x20
sub r10, rcx
shl r10, 0x20
add rax, r10
mov r10, rbp
div r9
shr r10, 0x20
add rax, r8
mov qword [r11 + 0x18], rax
mov rax, rdi
mov r9, qword [0x1400f8b08]
imul r10, r9
mul r10
mov eax, ebp
imul rax, r9
mov r8, rdx
xor edx, edx
shr r8, 0x12
imul rcx, r8, 0xf4240
shl r8, 0x20
sub r10, rcx
shl r10, 0x20
add rax, r10
mov r10, r14
div r9
shr r10, 0x20
add rax, r8
mov qword [r11 + 0x20], rax
mov rax, rdi
mov r9, qword [0x1400f8b08]
imul r10, r9
mul r10
mov eax, r14d
mov r8, rdx
xor edx, edx
shr r8, 0x12
imul rcx, r8, 0xf4240
imul rax, r9
sub r10, rcx
shl r8, 0x20
shl r10, 0x20
add rax, r10
div r9
add rax, r8
mov qword [r11 + 0x28], rax
mov r14, qword [rsp + 0x40]
xor eax, eax
mov rsi, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x30]
mov dword [rbx], 0xc8
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
cmp dword [rbx], 1
jae 0x140024d93
mov dword [rbx], 1
mov eax, 0x8007007a
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
test r11, r11
je case.0x140024917.83886096
mov dword [rbx], 1
movzx eax, byte [rdi + 0xf3]
and al, 1
mov byte [r9], al
xor eax, eax
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
xor eax, eax
cmp dword [rdi], 4
mov ecx, eax
sete cl
jmp 0x140024dd5
xor eax, eax
cmp dword [rdi], 4
mov ecx, eax
sete cl
add rcx, 2
cmp dword [rbx], 2
jb 0x140024a21
test r11, r11
je case.0x140024917.83886096
lea rcx, [rcx + rcx*2]
mov dword [rbx], 2
mov r8, qword [rdi + rcx*8 + 0x810]
mov rdx, qword [rdi + rcx*8 + 0x808]
cmp r8, rdx
jb 0x140024e18
movzx edx, ax
mov word [r9], ax
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
sub rdx, r8
mov ecx, 0xffff
cmp rdx, rcx
cmova dx, cx
mov word [r9], dx
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
cmp dword [rbx], 0x20
jae 0x140024e51
mov dword [rbx], 0x20
mov eax, 0x8007007a
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
test r11, r11
je case.0x140024917.83886096
mov dword [rbx], 0x20
mov rax, qword [rdi + 0x808]
shl rax, 2
mov qword [r9], rax
mov rax, qword [rdi + 0x820]
shl rax, 2
or rax, 1
mov qword [r9 + 8], rax
mov rax, qword [rdi + 0x838]
shl rax, 2
or rax, 2
mov qword [r9 + 0x10], rax
mov rax, qword [rdi + 0x850]
shl rax, 2
or rax, 3
mov qword [r9 + 0x18], rax
xor eax, eax
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
mov rcx, qword [rdi + 0x658]
test rcx, rcx
jne 0x140024ed0
mov eax, 0x80070490
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], 0
jne 0x140024ed7
inc eax
cmp dword [rbx], eax
jae 0x140024ef8
mov dword [rbx], eax
mov eax, 0x8007007a
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
test r11, r11
je case.0x140024917.83886096
mov dword [rbx], eax
mov rcx, r11
mov rdx, qword [rdi + 0x658]
mov r8d, eax
call fcn.140081340
xor eax, eax
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
cmp dword [rbx], 4
jb 0x14002491f
test r11, r11
je case.0x140024917.83886096
mov dword [rbx], 4
movzx eax, byte [rdi + 0xf3]
shr eax, 2
and eax, 1
mov dword [r9], eax
xor eax, eax
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
cmp dword [rbx], 1
jb 0x140024d7d
test r11, r11
je case.0x140024917.83886096
mov dword [rbx], 1
movzx eax, byte [rdi + 0xe3]
shr al, 3
and al, 1
mov byte [r9], al
xor eax, eax
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
cmp dword [rbx], 1
jb 0x140024d7d
test r11, r11
je case.0x140024917.83886096
mov dword [rbx], 1
movzx eax, byte [rdi + 0xe2a]
and al, 1
mov byte [r9], al
xor eax, eax
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
cmp dword [rbx], 1
jb 0x140024d7d
test r11, r11
je case.0x140024917.83886096
mov dword [rbx], 1
movzx eax, byte [rdi + 0xf1]
shr al, 3
and al, 1
mov byte [r9], al
xor eax, eax
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
cmp r8d, 0x5000017
mov rcx, rdi
mov r8, rbx
sete dl
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
jmp 0x140024560
mov rdx, qword [rdi + 0x508]
test rdx, rdx
je 0x140024989
movzx ecx, byte [rdx + 1]
cmp dword [rbx], ecx
jae 0x140025039
mov eax, 0x8007007a
mov dword [rbx], ecx
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
test r11, r11
je case.0x140024917.83886096
mov r8, rcx
add rdx, 0x10
mov rcx, r11
call fcn.140081340
mov rax, qword [rdi + 0x508]
movzx ecx, byte [rax + 1]
xor eax, eax
mov dword [rbx], ecx
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
mov rbx, qword [rsp + 0x48]
mov eax, 0x80070057
add rsp, 0x20
pop rdi
ret