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

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [rbp + 0x28]
cmp eax, 0x18
jge 0x686fbc
cmp eax, 0x12
jne 0x687986
mov dword [rbp - 4], 0
jmp 0x686fab
mov eax, dword [rbp - 4]
sar eax, 0x10
mov rbx, qword [rbp + 0x38]
cdqe
lea rax, [rbx + rax*4]
mov qword [rbp - 0x18], rax
mov eax, dword [rbp - 4]
and eax, 0xffff
sar eax, 0x10
mov ebx, dword [rbp + 0x20]
movsx ebx, bx
imul eax, ebx
mov ebx, dword [rbp - 4]
and ebx, 0xffff
and ebx, 0xffff
mov esi, dword [rbp + 0x20]
movsx esi, si
imul ebx, esi
sar ebx, 0x10
add eax, ebx
mov dword [rbp - 0xc], eax
mov eax, dword [rbp - 0xc]
lea eax, [rax + rax*8]
mov rbx, qword [rbp + 0x30]
cdqe
lea rax, [rbx + rax*2]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 4]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 2]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 4]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 2]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 8]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 4]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 8]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 4]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0xc]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 6]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0xc]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 6]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x10]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 8]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x10]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 8]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x14]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 0xa]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x14]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 0xa]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x18]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 0xc]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x18]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 0xc]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x1c]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 0xe]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x1c]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 0xe]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x20]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 0x10]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x20]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 0x10]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov eax, dword [rbp + 0x20]
dec eax
sub eax, dword [rbp - 0xc]
lea eax, [rax + rax*8]
mov rbx, qword [rbp + 0x30]
cdqe
lea rax, [rbx + rax*2]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x44]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x44]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x40]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 2]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x40]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 2]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x3c]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 4]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x3c]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 4]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x38]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 6]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x38]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 6]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x34]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 8]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x34]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 8]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x30]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 0xa]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x30]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 0xa]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x2c]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 0xc]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x2c]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 0xc]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x28]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 0xe]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x28]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 0xe]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x24]
sar eax, 0x10
mov rbx, qword [rbp - 0x20]
movsx ebx, word [rbx + 0x10]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x24]
and ebx, 0xffff
mov rsi, qword [rbp - 0x20]
movsx esi, word [rsi + 0x10]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp + 0x40]
add qword [rbp + 0x40], 2
mov qword [rsp], rax
jmp 0x686f40
mov eax, dword [rbp - 8]
sar eax, 5
inc eax
sar eax, 1
cmp eax, 0x7fff
jle 0x686f59
mov eax, 0x7fff
jmp 0x686f9e
jmp 0x686f6a
mov eax, dword [rbp - 8]
sar eax, 5
inc eax
sar eax, 1
cmp eax, 0xffff8000
jge 0x686f83
mov eax, 0xffff8000
jmp 0x686f9e
jmp 0x686f94
mov eax, dword [rbp - 8]
sar eax, 5
inc eax
sar eax, 1
mov rbx, qword [rsp]
mov word [rbx], ax
mov eax, dword [rbp + 0x10]
add dword [rbp - 4], eax
mov eax, dword [rbp - 4]
cmp eax, dword [rbp + 0x18]
jl 0x686ac6
jmp 0x687988
cmp eax, 0x24
jge 0x6873c9
cmp eax, 0x18
jne 0x687986
mov dword [rbp - 4], 0
jmp 0x6873b8
mov eax, dword [rbp - 4]
sar eax, 0x10
mov rbx, qword [rbp + 0x38]
cdqe
lea rax, [rbx + rax*4]
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax]
add eax, dword [rbx + 0x5c]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx]
add ebx, dword [rsi + 0x5c]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 4]
add eax, dword [rbx + 0x58]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 2]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 4]
add ebx, dword [rsi + 0x58]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 2]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 8]
add eax, dword [rbx + 0x54]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 4]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 8]
add ebx, dword [rsi + 0x54]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 4]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0xc]
add eax, dword [rbx + 0x50]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 6]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0xc]
add ebx, dword [rsi + 0x50]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 6]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x10]
add eax, dword [rbx + 0x4c]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 8]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x10]
add ebx, dword [rsi + 0x4c]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 8]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x14]
add eax, dword [rbx + 0x48]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0xa]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x14]
add ebx, dword [rsi + 0x48]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0xa]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x18]
add eax, dword [rbx + 0x44]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0xc]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x18]
add ebx, dword [rsi + 0x44]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0xc]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x1c]
add eax, dword [rbx + 0x40]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0xe]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x1c]
add ebx, dword [rsi + 0x40]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0xe]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x20]
add eax, dword [rbx + 0x3c]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0x10]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x20]
add ebx, dword [rsi + 0x3c]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0x10]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x24]
add eax, dword [rbx + 0x38]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0x12]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x24]
add ebx, dword [rsi + 0x38]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0x12]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x28]
add eax, dword [rbx + 0x34]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0x14]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x28]
add ebx, dword [rsi + 0x34]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0x14]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x2c]
add eax, dword [rbx + 0x30]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0x16]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x2c]
add ebx, dword [rsi + 0x30]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0x16]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp + 0x40]
add qword [rbp + 0x40], 2
mov qword [rsp], rax
jmp 0x68734d
mov eax, dword [rbp - 8]
sar eax, 5
inc eax
sar eax, 1
cmp eax, 0x7fff
jle 0x687366
mov eax, 0x7fff
jmp 0x6873ab
jmp 0x687377
mov eax, dword [rbp - 8]
sar eax, 5
inc eax
sar eax, 1
cmp eax, 0xffff8000
jge 0x687390
mov eax, 0xffff8000
jmp 0x6873ab
jmp 0x6873a1
mov eax, dword [rbp - 8]
sar eax, 5
inc eax
sar eax, 1
mov rbx, qword [rsp]
mov word [rbx], ax
mov eax, dword [rbp + 0x10]
add dword [rbp - 4], eax
mov eax, dword [rbp - 4]
cmp eax, dword [rbp + 0x18]
jl 0x686fda
jmp 0x687988
cmp eax, 0x24
jne 0x687986
mov dword [rbp - 4], 0
jmp 0x687978
mov eax, dword [rbp - 4]
sar eax, 0x10
mov rbx, qword [rbp + 0x38]
cdqe
lea rax, [rbx + rax*4]
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax]
add eax, dword [rbx + 0x8c]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx]
add ebx, dword [rsi + 0x8c]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 4]
add eax, dword [rbx + 0x88]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 2]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 4]
add ebx, dword [rsi + 0x88]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 2]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 8]
add eax, dword [rbx + 0x84]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 4]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 8]
add ebx, dword [rsi + 0x84]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 4]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0xc]
add eax, dword [rbx + 0x80]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 6]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0xc]
add ebx, dword [rsi + 0x80]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 6]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x10]
add eax, dword [rbx + 0x7c]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 8]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x10]
add ebx, dword [rsi + 0x7c]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 8]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x14]
add eax, dword [rbx + 0x78]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0xa]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x14]
add ebx, dword [rsi + 0x78]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0xa]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x18]
add eax, dword [rbx + 0x74]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0xc]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x18]
add ebx, dword [rsi + 0x74]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0xc]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x1c]
add eax, dword [rbx + 0x70]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0xe]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x1c]
add ebx, dword [rsi + 0x70]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0xe]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x20]
add eax, dword [rbx + 0x6c]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0x10]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x20]
add ebx, dword [rsi + 0x6c]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0x10]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x24]
add eax, dword [rbx + 0x68]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0x12]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x24]
add ebx, dword [rsi + 0x68]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0x12]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x28]
add eax, dword [rbx + 0x64]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0x14]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x28]
add ebx, dword [rsi + 0x64]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0x14]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x2c]
add eax, dword [rbx + 0x60]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0x16]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x2c]
add ebx, dword [rsi + 0x60]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0x16]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x30]
add eax, dword [rbx + 0x5c]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0x18]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x30]
add ebx, dword [rsi + 0x5c]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0x18]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x34]
add eax, dword [rbx + 0x58]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0x1a]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x34]
add ebx, dword [rsi + 0x58]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0x1a]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x38]
add eax, dword [rbx + 0x54]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0x1c]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x38]
add ebx, dword [rsi + 0x54]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0x1c]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x3c]
add eax, dword [rbx + 0x50]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0x1e]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x3c]
add ebx, dword [rsi + 0x50]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0x1e]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x40]
add eax, dword [rbx + 0x4c]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0x20]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x40]
add ebx, dword [rsi + 0x4c]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0x20]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp - 0x18]
mov rbx, qword [rbp - 0x18]
mov eax, dword [rax + 0x44]
add eax, dword [rbx + 0x48]
sar eax, 0x10
mov rbx, qword [rbp + 0x30]
movsx ebx, word [rbx + 0x22]
imul eax, ebx
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x18]
mov ebx, dword [rbx + 0x44]
add ebx, dword [rsi + 0x48]
and ebx, 0xffff
mov rsi, qword [rbp + 0x30]
movsx esi, word [rsi + 0x22]
imul ebx, esi
sar ebx, 0x10
add eax, ebx
add eax, dword [rbp - 8]
mov dword [rbp - 8], eax
mov rax, qword [rbp + 0x40]
add qword [rbp + 0x40], 2
mov qword [rsp], rax
jmp 0x68790d
mov eax, dword [rbp - 8]
sar eax, 5
inc eax
sar eax, 1
cmp eax, 0x7fff
jle 0x687926
mov eax, 0x7fff
jmp 0x68796b
jmp 0x687937
mov eax, dword [rbp - 8]
sar eax, 5
inc eax
sar eax, 1
cmp eax, 0xffff8000
jge 0x687950
mov eax, 0xffff8000
jmp 0x68796b
jmp 0x687961
mov eax, dword [rbp - 8]
sar eax, 5
inc eax
sar eax, 1
mov rbx, qword [rsp]
mov word [rbx], ax
mov eax, dword [rbp + 0x10]
add dword [rbp - 4], eax
mov eax, dword [rbp - 4]
cmp eax, dword [rbp + 0x18]
jl 0x6873de
jmp 0x687988
jmp 0x687988
mov rax, qword [rbp + 0x40]
leave
ret 0x38