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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov byte [rax + 0x20], r9b
mov word [rax + 0x18], r8w
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x110
mov r12, rdx
mov rsi, rcx
mov r13, qword [rsp + 0x168]
xor r14d, r14d
mov dword [rax + 0x20], r14d
mov ebx, dword [rcx + 0x94]
add rbx, rdx
mov qword [rax - 0x38], rbx
je 0x14004fba8
mov r15, qword [rcx + 0x18]
test r15, r15
je 0x14004fba8
lea r9, [rsp + 0x78]
mov r8d, 0x64616568
mov rdx, rbx
mov rcx, r12
call fcn.140043500
mov qword [rsp + 0xf0], rax
lea r9, [rsp + 0x78]
mov r8d, 0x61656868
mov rdx, rbx
mov rcx, r12
call fcn.140043500
mov qword [rsp + 0x90], rax
lea r9, [rsp + 0x78]
mov r8d, 0x61656876
mov rdx, rbx
mov rcx, r12
call fcn.140043500
mov qword [rsp + 0xa0], rax
lea r9, [rsp + 0x78]
mov r8d, 0x7078616d
mov rdx, rbx
mov rcx, r12
call fcn.140043500
mov qword [rsp + 0x88], rax
lea r9, [rsp + 0xb4]
mov r8d, 0x656d616e
mov rdx, rbx
mov rcx, r12
call fcn.140043500
mov qword [rsp + 0xe8], rax
lea r9, [rsp + 0x78]
mov r8d, 0x322f534f
mov rdx, rbx
mov rcx, r12
call fcn.140043500
mov rdi, rax
lea r9, [rsp + 0x78]
mov r8d, 0x74736f70
mov rdx, rbx
mov rcx, r12
call fcn.140043500
mov r10, rax
mov qword [rsp + 0xf8], rax
mov r9, qword [rsp + 0xf0]
test r9, r9
je 0x14004fba8
cmp qword [rsp + 0x90], r14
je 0x14004fba8
cmp qword [rsp + 0x88], r14
je 0x14004fba8
cmp qword [rsp + 0xe8], r14
je 0x14004fba8
test rdi, rdi
je 0x14004fba8
test rax, rax
je 0x14004fba8
movzx ecx, byte [rdi + 1]
movzx eax, word [rdi]
shl ax, 8
or cx, ax
lea r11d, [r14 + 2]
cmp cx, r11w
jb 0x14004fba8
mov edx, dword [r10]
mov eax, edx
sar eax, 8
movzx r8d, al
movzx eax, dx
shl ax, 8
movzx eax, ax
or r8d, eax
shl r8d, 0x10
mov eax, edx
sar eax, 0x18
movzx ecx, al
or r8d, ecx
sar edx, 0x10
shl dx, 8
movzx eax, dx
or r8d, eax
sub r8d, 0x20000
cmp r8d, 0x1ffff
ja 0x14004fba8
mov eax, dword [rdi + 0x3a]
bswap eax
cmp eax, 0x41444245
jne 0x14004e51d
mov ecx, dword [r9 + 4]
mov eax, ecx
sar eax, 0x18
movzx edx, al
mov eax, ecx
sar eax, 0x10
shl ax, 8
movzx eax, ax
or edx, eax
sar ecx, 8
movzx ecx, cl
movzx eax, word [r9 + 4]
shl ax, 8
movzx eax, ax
or ecx, eax
shl ecx, 0x10
or edx, ecx
cmp edx, 0x10000
jl 0x14004fba8
movzx eax, word [r9 + 0x10]
ror ax, 8
shr ax, 0xc
xor al, byte [rsi + 0x457]
and al, 1
xor byte [rsi + 0x457], al
mov al, byte [rsi + 0x457]
mov cl, al
add cl, cl
xor cl, al
and cl, r11b
xor cl, al
mov byte [rsi + 0x457], cl
movzx eax, word [r9 + 0x12]
mov ecx, eax
shr ecx, 8
shl ax, 8
or cx, ax
mov word [rsi + 0x164], cx
jl 0x14004fba8
movzx eax, word [r9 + 0x2e]
mov ecx, eax
shr ecx, 8
shl ax, 8
or cx, ax
mov word [rsi + 0x168], cx
movzx eax, word [rdi + 8]
mov ecx, 8
ror ax, cl
mov word [rsi + 0x162], ax
lea r9, [rsp + 0x78]
mov r8d, 0x47495344
mov rdx, rbx
mov rcx, r12
call fcn.140043500
test rax, rax
je 0x14004e5be
mov eax, 0x20
or byte [rsi + 0x456], al
mov ebx, 1
mov dword [rsi + 0x172], 0x10001
lea rdx, [rdi + 0x20]
mov al, byte [rdx]
cmp al, 3
je 0x14004e60a
sub al, 4
cmp al, bl
ja 0x14004e5e1
mov al, 0x50
jmp 0x14004e5e9
cmp byte [rdi + 0x23], 9
jne 0x14004e5f1
mov al, 0x30
mov byte [rsi + 0x177], al
jmp 0x14004e613
movzx ecx, byte [rdi + 0x21]
cmp cl, 0x10
sbb rax, rax
and rax, rcx
lea rcx, [0x1400a7318]
mov al, byte [rax + rcx]
jmp 0x14004e5e9
mov byte [rsi + 0x177], 0x40
mov al, 0x40
cmp byte [rdi + 0x23], 9
jne 0x14004e628
or byte [rsi + 0x456], 0x80
or byte [rsi + 0x177], bl
jmp 0x14004e630
or al, 2
mov byte [rsi + 0x177], al
mov dword [rsi + 0x154], r14d
lea rcx, [rsi + 0x158]
mov r8d, 0xa
call fcn.140033d7b
movzx eax, word [rdi + 0x2a]
shl ax, 8
movzx edx, ax
movzx eax, byte [rdi + 0x2b]
or edx, eax
shl edx, 0x10
movzx ecx, byte [rdi + 0x2c]
shl ecx, 8
movzx eax, byte [rdi + 0x2d]
or ecx, eax
or edx, ecx
mov dword [rsi + 0x434], edx
movzx eax, word [rdi + 0x2e]
shl ax, 8
movzx edx, ax
movzx eax, byte [rdi + 0x2f]
or edx, eax
shl edx, 0x10
movzx ecx, byte [rdi + 0x30]
shl ecx, 8
movzx eax, byte [rdi + 0x31]
or ecx, eax
or edx, ecx
mov dword [rsi + 0x438], edx
movzx eax, word [rdi + 0x32]
shl ax, 8
movzx edx, ax
movzx eax, byte [rdi + 0x33]
or edx, eax
shl edx, 0x10
movzx ecx, byte [rdi + 0x34]
shl ecx, 8
movzx eax, byte [rdi + 0x35]
or ecx, eax
or edx, ecx
mov dword [rsi + 0x43c], edx
movzx eax, word [rdi + 0x36]
shl ax, 8
movzx edx, ax
movzx eax, byte [rdi + 0x37]
or edx, eax
shl edx, 0x10
movzx ecx, byte [rdi + 0x38]
shl ecx, 8
movzx eax, byte [rdi + 0x39]
or ecx, eax
or edx, ecx
mov dword [rsi + 0x440], edx
movzx eax, word [rdi + 0x4e]
shl ax, 8
movzx edx, ax
movzx eax, byte [rdi + 0x4f]
or edx, eax
shl edx, 0x10
movzx ecx, byte [rdi + 0x50]
shl ecx, 8
movzx eax, byte [rdi + 0x51]
or ecx, eax
or edx, ecx
mov dword [rsi + 0x444], edx
movzx eax, word [rdi + 0x52]
shl ax, 8
movzx edx, ax
movzx eax, byte [rdi + 0x53]
or edx, eax
shl edx, 0x10
movzx ecx, byte [rdi + 0x54]
shl ecx, 8
movzx eax, byte [rdi + 0x55]
or ecx, eax
or edx, ecx
mov dword [rsi + 0x448], edx
mov eax, dword [rdi + 0x3a]
mov dword [rsi + 0x44c], eax
mov rcx, qword [rsp + 0x88]
movzx eax, word [rcx + 4]
shl ax, 8
movzx r8d, ax
movzx eax, byte [rcx + 5]
or r8d, eax
mov dword [rsi + 0xa8], r8d
lea rax, [rsp + 0x158]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x88]
mov rdx, r12
mov rcx, rsi
call fcn.14004bf28
cmp eax, ebx
jne 0x14004fba8
mov r8, qword [rsp + 0x88]
mov qword [rsi + 0x20], r8
cmp dword [r8 + 0xc], r14d
je 0x14004fba8
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsi + 0xa8]
mov rdx, r12
mov rcx, rsi
call fcn.14004c258
cmp eax, ebx
jne 0x14004fba8
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14004e809
cmp word [r15 + 0xf8], r14w
je 0x14004fba8
cmp qword [r15 + 0xe8], r14
je 0x14004fba8
or byte [rsi + 0x455], bl
mov qword [rsi + 0x28], rax
cmp qword [rsp + 0xa0], r14
je 0x14004fba8
mov edx, dword [rsp + 0x158]
test edx, edx
je 0x14004e81e
mov eax, edx
or eax, ebx
or dword [rsi + 0x444], eax
lea rbx, [rsi + 0x424]
mov r8, rbx
lea rcx, [rsi + 0x434]
call fcn.14004d1ec
mov rdx, qword [rsp + 0x88]
movzx eax, word [rdx + 0x10]
mov word [rsi + 0x16a], ax
mov ecx, dword [rdx + 0xc]
mov r8d, 1
sub ecx, r8d
add rcx, rcx
movzx eax, word [rdx + rcx*8 + 0x12]
add ax, word [rdx + rcx*8 + 0x10]
sub ax, r8w
mov word [rsi + 0x16c], ax
mov al, byte [rbx]
mov byte [rsi + 0x176], al
lea r9, [rsp + 0x158]
xor r8d, r8d
mov rdx, rsi
mov rcx, r12
call fcn.140058158
cmp eax, 1
jne 0x14004fba8
mov eax, dword [rsp + 0x158]
mov dword [rsi + 0x150], eax
movzx eax, word [rsi + 0x16a]
movzx ecx, al
mov ebx, 0x20
cmp bx, ax
cmovb ecx, ebx
mov byte [rsi + 0x178], cl
mov byte [rsi + 0x179], 0xff
movzx eax, word [rdi + 0x5c]
mov ecx, eax
shr ecx, 8
shl ax, 8
or cx, ax
mov word [rsi + 0x170], cx
lea rax, [rsi + 0x17b]
cmp cx, bx
jne 0x14004e8e8
mov byte [rax], bl
jmp 0x14004e8ff
mov edx, 0x100
mov r8, rax
call fcn.1400429c4
test al, al
jne 0x14004e8ff
mov byte [rsi + 0x17b], bl
movzx eax, word [rdi + 0x5a]
mov ecx, eax
shr ecx, 8
shl ax, 8
or cx, ax
mov word [rsi + 0x16e], cx
mov eax, 0x2022
cmp cx, ax
jne 0x14004e929
mov byte [rsi + 0x17a], 0x95
jmp 0x14004e949
cmp cx, bx
je 0x14004e943
lea r8, [rsi + 0x17a]
mov edx, 0x100
call fcn.1400429c4
test al, al
jne 0x14004e949
mov byte [rsi + 0x17a], bl
movzx eax, word [rdi + 0x58]
movzx r10d, ax
shr r10w, 8
shl ax, 8
or r10w, ax
mov word [rsp + 0x50], r10w
mov word [rsp + 0xdc], r10w
movzx eax, word [rdi + 0x44]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x158], cx
mov word [rsp + 0xd0], cx
movzx eax, word [rdi + 0x46]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x54], cx
mov word [rsp + 0xd2], cx
movzx eax, word [rdi + 0x48]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x56], cx
mov word [rsp + 0xd4], cx
movzx eax, word [rdi + 0x56]
movzx r11d, ax
shr r11w, 8
shl ax, 8
or r11w, ax
mov word [rsp + 0x52], r11w
mov word [rsp + 0xda], r11w
movzx eax, word [rdi + 4]
mov ecx, eax
shr ecx, 8
shl ax, 8
or cx, ax
mov dword [rsp + 0xa0], ecx
mov word [rsp + 0xba], cx
movzx eax, word [rdi + 0x4a]
mov ecx, eax
shr ecx, 8
shl ax, 8
or cx, ax
mov dword [rsp + 0xb0], ecx
mov word [rsp + 0xd6], cx
movzx eax, word [rdi + 0x4c]
mov r8d, eax
shr r8d, 8
shl ax, 8
or r8w, ax
mov dword [rsp + 0xac], r8d
mov word [rsp + 0xd8], r8w
movzx eax, word [rdi + 2]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0xaa], cx
mov word [rsp + 0xb8], cx
movzx eax, word [rdi + 0x1c]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x5a], cx
mov word [rsp + 0xce], cx
movzx eax, word [rdi + 0x1a]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x58], cx
mov word [rsp + 0xcc], cx
movzx eax, word [rdi + 0xe]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x68], cx
mov word [rsp + 0xc0], cx
movzx eax, word [rdi + 0xa]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x64], cx
mov word [rsp + 0xbc], cx
movzx eax, word [rdi + 0x10]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x6a], cx
mov word [rsp + 0xc2], cx
movzx eax, word [rdi + 0xc]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x66], cx
mov word [rsp + 0xbe], cx
movzx eax, word [rdi + 0x16]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x70], cx
mov word [rsp + 0xc8], cx
movzx eax, word [rdi + 0x12]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x6c], cx
mov word [rsp + 0xc4], cx
movzx eax, word [rdi + 0x18]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x72], cx
mov word [rsp + 0xca], cx
movzx eax, word [rdi + 0x14]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x6e], cx
mov word [rsp + 0xc6], cx
mov rdx, qword [rsp + 0x90]
movzx eax, word [rdx + 4]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x82], cx
mov word [rsp + 0x90], cx
movzx eax, word [rdx + 6]
movzx r9d, ax
shr r9w, 8
shl ax, 8
or r9w, ax
mov word [rsp + 0x80], r9w
mov word [rsp + 0x92], r9w
movzx eax, word [rdx + 8]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x94], cx
movzx eax, word [rdx + 0xa]
mov ecx, 8
ror ax, cl
mov word [rsp + 0xa8], ax
mov word [rsp + 0x96], ax
movzx eax, word [rdx + 0x14]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x60], cx
mov word [rsp + 0x9a], cx
movzx eax, word [rdx + 0x12]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x62], cx
mov word [rsp + 0x98], cx
mov rdx, qword [rsp + 0xf8]
mov ecx, dword [rdx + 4]
mov eax, ecx
sar eax, 0x18
movzx ebx, al
mov eax, ecx
sar eax, 0x10
shl ax, 8
movzx eax, ax
or ebx, eax
sar ecx, 8
movzx ecx, cl
movzx eax, word [rdx + 4]
shl ax, 8
movzx eax, ax
or ecx, eax
shl ecx, 0x10
or ebx, ecx
mov dword [rsp + 0x78], ebx
mov dword [rsp + 0x88], ebx
movzx eax, word [rdx + 8]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x5e], cx
mov word [rsp + 0x8c], cx
movzx eax, word [rdx + 0xa]
movzx ecx, ax
shr cx, 8
shl ax, 8
or cx, ax
mov word [rsp + 0x5c], cx
mov word [rsp + 0x8e], cx
test r13, r13
je 0x14004f148
mov eax, dword [r13 + 0x28]
mov dword [rsi + 0x458], eax
lea rcx, [rax + rax*4]
lea rcx, [rcx*8 + 8]
mov ebx, 1
mov r9b, bl
mov r8b, bl
call fcn.1400418d4
mov rcx, rax
mov qword [rsi + 0x460], rax
test rax, rax
je 0x14004fba8
mov eax, dword [rsi + 0x458]
mov dword [rcx + 4], eax
mov rax, qword [rsi + 0x460]
add rax, 8
mov qword [rsp + 0xf8], rax
mov eax, dword [rsi + 0x458]
add eax, eax
lea rcx, [rax*4 + 4]
mov r9b, bl
mov r8b, bl
call fcn.1400418d4
mov rcx, rax
mov qword [rsi + 0x468], rax
test rax, rax
je 0x14004fba8
mov eax, dword [rsi + 0x458]
mov dword [rcx], eax
mov eax, r14d
mov r8d, dword [rsp + 0x170]
mov dword [rsp + 0xe0], eax
mov ecx, dword [rsi + 0x458]
mov dword [rsp + 0x78], ecx
cmp eax, ecx
jae 0x14004ee6e
mov rbx, qword [rsi + 0x468]
mov edi, eax
lea r8, [rdi + rdi*4]
mov rax, qword [r13 + 0x18]
movzx ecx, byte [rax + r8*4 + 4]
movzx edx, byte [rax + r8*4 + 5]
movzx r10d, byte [rax + r8*4 + 0xd]
movzx r9d, byte [rax + r8*4 + 0xc]
lea r11, [rdi + rdi*4]
mov eax, dword [rax + r8*4]
mov r8, qword [rsp + 0xf8]
mov dword [r8 + r11*8 + 8], eax
shl ecx, 8
or ecx, edx
mov dword [r8 + r11*8], ecx
mov ecx, r9d
shl ecx, 8
or ecx, r10d
mov dword [r8 + r11*8 + 4], ecx
mov ecx, dword [r13 + 0x30]
mov r8d, dword [rsp + 0x170]
imul ecx, r8d
add rcx, qword [r13 + 0x20]
movzx edx, byte [rcx + rdi*4 + 4]
shl edx, 8
movzx eax, byte [rcx + rdi*4 + 5]
or edx, eax
shl edx, 8
movzx eax, byte [rcx + rdi*4 + 6]
or edx, eax
shl edx, 8
movzx eax, byte [rcx + rdi*4 + 7]
or edx, eax
mov eax, dword [rsp + 0x78]
add rax, rdi
mov dword [rbx + rax*4 + 4], edx
mov eax, r8d
shl rax, 4
add rax, qword [r13 + 0xd0]
mov rax, qword [rax]
mov ecx, dword [rax + rdi*4]
mov rax, qword [rsi + 0x468]
mov dword [rax + rdi*4 + 4], ecx
mov eax, dword [rsp + 0xe0]
inc eax
jmp 0x14004ed91
test ecx, ecx
je 0x14004f0e9
test r8d, r8d
je 0x14004f0e9
mov dword [rsp + 0xa0], r14d
lea r9, [rsp + 0xa0]
mov r8d, 0x5241564d
mov rdx, qword [rsp + 0x100]
mov rcx, r12
call fcn.140043500
test rax, rax
je 0x14004f0e9
mov edx, dword [rsp + 0xa0]
test edx, edx
je 0x14004f0e9
mov rcx, rax
call fcn.14008a790
mov rbx, rax
test rax, rax
je 0x14004fba8
mov rdx, qword [rsi + 0x468]
mov rcx, rax
call fcn.14001d6bc
movzx eax, word [rsp + 0x50]
add ax, word [rbx + 0x2c]
mov word [rsp + 0x50], ax
mov word [rsp + 0xdc], ax
movzx edi, word [rsp + 0x158]
add di, word [rbx + 0xe]
mov word [rsp + 0xd0], di
movzx ecx, word [rsp + 0x54]
add cx, word [rbx + 0x10]
mov word [rsp + 0x54], cx
mov word [rsp + 0xd2], cx
movzx edx, word [rsp + 0x56]
add dx, word [rbx + 0x12]
mov word [rsp + 0x56], dx
mov word [rsp + 0xd4], dx
movzx eax, word [rsp + 0x52]
add ax, word [rbx + 0x2a]
mov word [rsp + 0x52], ax
mov word [rsp + 0xda], ax
mov eax, dword [rsp + 0xb0]
add ax, word [rbx + 0x14]
mov dword [rsp + 0xb0], eax
mov word [rsp + 0xd6], ax
mov eax, dword [rsp + 0xac]
add ax, word [rbx + 0x16]
mov dword [rsp + 0xac], eax
mov word [rsp + 0xd8], ax
movzx eax, word [rsp + 0x5a]
add ax, word [rbx + 0x40]
mov word [rsp + 0x5a], ax
mov word [rsp + 0xce], ax
movzx eax, word [rsp + 0x58]
add ax, word [rbx + 0x3e]
mov word [rsp + 0x58], ax
mov word [rsp + 0xcc], ax
movzx eax, word [rsp + 0x68]
add ax, word [rbx + 0x32]
mov word [rsp + 0x68], ax
mov word [rsp + 0xc0], ax
movzx eax, word [rsp + 0x64]
add ax, word [rbx + 0x2e]
mov word [rsp + 0x64], ax
mov word [rsp + 0xbc], ax
movzx eax, word [rsp + 0x6a]
add ax, word [rbx + 0x34]
mov word [rsp + 0x6a], ax
mov word [rsp + 0xc2], ax
movzx eax, word [rsp + 0x66]
add ax, word [rbx + 0x30]
mov word [rsp + 0x66], ax
mov word [rsp + 0xbe], ax
movzx eax, word [rsp + 0x70]
add ax, word [rbx + 0x3a]
mov word [rsp + 0x70], ax
mov word [rsp + 0xc8], ax
movzx eax, word [rsp + 0x6c]
add ax, word [rbx + 0x36]
mov word [rsp + 0x6c], ax
mov word [rsp + 0xc4], ax
movzx eax, word [rsp + 0x72]
add ax, word [rbx + 0x3c]
mov word [rsp + 0x72], ax
mov word [rsp + 0xca], ax
movzx eax, word [rsp + 0x6e]
add ax, word [rbx + 0x38]
mov word [rsp + 0x6e], ax
mov word [rsp + 0xc6], ax
movzx eax, di
mov word [rsp + 0x82], ax
mov word [rsp + 0x90], ax
mov word [rsp + 0x80], cx
mov word [rsp + 0x92], cx
mov word [rsp + 0x94], dx
movzx eax, word [rsp + 0x60]
add ax, word [rbx + 0x20]
mov word [rsp + 0x60], ax
mov word [rsp + 0x9a], ax
movzx eax, word [rsp + 0x62]
add ax, word [rbx + 0x1e]
mov word [rsp + 0x62], ax
mov word [rsp + 0x98], ax
movzx eax, word [rsp + 0x5e]
add ax, word [rbx + 0x44]
mov word [rsp + 0x5e], ax
mov word [rsp + 0x8c], ax
movzx eax, word [rsp + 0x5c]
add ax, word [rbx + 0x42]
mov word [rsp + 0x5c], ax
mov word [rsp + 0x8e], ax
mov rcx, rbx
call fcn.1400898b8
jmp 0x14004f0f1
movzx edi, word [rsp + 0x158]
mov ebx, dword [rsp + 0x170]
mov ecx, ebx
mov rax, qword [r13 + 0xe0]
movzx eax, word [rax + rbx*2]
mov dword [rsp + 0xa0], eax
mov word [rsp + 0xba], ax
mov rax, qword [r13 + 0xf0]
mov eax, dword [rax + rbx*4]
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x88], eax
mov r8d, dword [rsp + 0xac]
movzx r9d, word [rsp + 0x80]
movzx r10d, word [rsp + 0x50]
movzx r11d, word [rsp + 0x52]
jmp 0x14004f157
mov ebx, dword [rsp + 0x170]
movzx edi, word [rsp + 0x158]
mov word [rsi + 0xe0], di
movzx eax, word [rsp + 0x54]
mov word [rsi + 0xe2], ax
movzx eax, word [rsp + 0x56]
mov word [rsi + 0xe4], ax
test byte [rsi + 0x455], 0x10
je 0x14004f330
mov rax, qword [r15 + 8]
movups xmm0, xmmword [rax + 0x74]
movdqu xmmword [rsi + 0xb4], xmm0
mov eax, dword [rsi + 0xc0]
mov ecx, 0x8000
add eax, ecx
sar eax, 0x10
mov word [rsi + 0xdc], ax
mov eax, dword [rsi + 0xb8]
add eax, ecx
sar eax, 0x10
neg ax
mov word [rsi + 0xde], ax
sub ax, word [rsi + 0x164]
add ax, word [rsi + 0xdc]
mov word [rsi + 0xe6], ax
jns 0x14004f1e5
sub word [rsi + 0xdc], ax
mov word [rsi + 0xe6], r14w
mov word [rsi + 0xe8], r14w
mov eax, 2
test byte [rsi + 0x457], al
je 0x14004f22e
movzx eax, word [rsi + 0xdc]
sub ax, word [rsi + 0xe6]
mov word [rsi + 0xe0], ax
movzx eax, word [rsi + 0xde]
neg ax
mov word [rsi + 0xe2], ax
movzx eax, word [rsi + 0xe6]
mov word [rsi + 0xe4], ax
mov r8, r15
mov rdx, r12
mov rcx, rsi
call fcn.14004d964
mov r12d, 1
cmp eax, r12d
jne 0x14004fba8
lea r8, [rsi + 0xc8]
lea edx, [r12 + 3]
xor r9d, r9d
mov rcx, r15
call fcn.14004e0dc
cmp eax, r12d
jne 0x14004fba8
lea r8, [rsi + 0xca]
lea edx, [r12 + 4]
xor r9d, r9d
mov rcx, r15
call fcn.14004e0dc
cmp eax, r12d
jne 0x14004fba8
lea r8, [rsi + 0xd8]
mov edx, r12d
xor r9d, r9d
mov rcx, r15
call fcn.14004e0dc
cmp eax, r12d
jne 0x14004fba8
lea rdi, [rsi + 0xda]
lea edx, [r12 + 1]
xor r9d, r9d
mov r8, rdi
mov rcx, r15
call fcn.14004e0dc
cmp eax, r12d
jne 0x14004fba8
movzx eax, word [rdi]
neg ax
mov word [rdi], ax
lea r8, [rsi + 0xd6]
lea edx, [r12 + 5]
xor r9d, r9d
mov rcx, r15
call fcn.14004e0dc
cmp eax, r12d
jne 0x14004fba8
lea r8, [rsi + 0xd4]
lea edx, [r12 + 6]
xor r9d, r9d
mov rcx, r15
call fcn.14004e0dc
cmp eax, r12d
jne 0x14004fba8
mov rdi, qword [rsp + 0xf0]
lea rcx, [rsi + 0xca]
lea rdx, [rsi + 0xc8]
jmp 0x14004f447
mov rdi, qword [rsp + 0xf0]
movzx ecx, word [rdi + 0x24]
mov eax, ecx
sar eax, 8
movzx edx, al
shl cx, 8
movsx eax, cx
or edx, eax
shl edx, 0x10
mov dword [rsi + 0xb4], edx
movzx ecx, word [rdi + 0x26]
mov eax, ecx
sar eax, 8
movzx edx, al
shl cx, 8
movsx eax, cx
or edx, eax
shl edx, 0x10
mov dword [rsi + 0xb8], edx
movzx ecx, word [rdi + 0x28]
mov eax, ecx
sar eax, 8
movzx edx, al
shl cx, 8
movsx eax, cx
or edx, eax
shl edx, 0x10
mov dword [rsi + 0xbc], edx
movzx ecx, word [rdi + 0x2a]
mov eax, ecx
sar eax, 8
movzx edx, al
shl cx, 8
movsx eax, cx
or edx, eax
shl edx, 0x10
mov dword [rsi + 0xc0], edx
mov eax, dword [rsp + 0xb0]
mov word [rsi + 0xdc], ax
mov word [rsi + 0xde], r8w
sub r8w, word [rsi + 0x164]
add r8w, word [rsi + 0xdc]
mov word [rsi + 0xe6], r8w
jns 0x14004f3f0
sub word [rsi + 0xdc], r8w
mov word [rsi + 0xe6], r14w
mov word [rsi + 0xe8], r14w
lea rdx, [rsi + 0xc8]
movzx eax, word [rsp + 0xa8]
mov word [rdx], ax
lea rcx, [rsi + 0xca]
movzx eax, word [rsp + 0xaa]
mov word [rcx], ax
movzx eax, word [rsp + 0x82]
mov word [rsi + 0xd8], ax
neg r9w
mov word [rsi + 0xda], r9w
mov word [rsi + 0xd4], r10w
mov word [rsi + 0xd6], r11w
mov r12d, 0x8000
mov r8b, byte [rsi + 0x455]
mov al, r8b
and al, 0x18
cmp al, 0x18
jne 0x14004f619
test r8b, r8b
jns 0x14004f619
mov r8d, 2
test byte [rsi + 0x422], r8b
jne 0x14004f619
mov rax, qword [r15 + 0x10]
movups xmm0, xmmword [rax + 0x74]
movdqu xmmword [rsi + 0x128], xmm0
mov eax, dword [rsi + 0x134]
add eax, r12d
sar eax, 0x10
mov word [rsi + 0x144], ax
mov ecx, dword [rsi + 0x12c]
add ecx, r12d
sar ecx, 0x10
neg cx
mov word [rsi + 0x146], cx
sub cx, word [rsi + 0x164]
add cx, word [rsi + 0x144]
mov word [rsi + 0x14e], cx
jns 0x14004f4e0
sub word [rsi + 0x144], cx
mov word [rsi + 0x14e], r14w
movzx ecx, r14w
test byte [rsi + 0x457], r8b
je 0x14004f514
movzx eax, word [rsi + 0x144]
sub ax, cx
mov word [rsi + 0x148], ax
movzx eax, word [rsi + 0x146]
neg ax
mov word [rsi + 0x14a], ax
movzx eax, word [rsi + 0x14e]
jmp 0x14004f537
movzx eax, word [rsi + 0xe0]
mov word [rsi + 0x148], ax
movzx eax, word [rsi + 0xe2]
mov word [rsi + 0x14a], ax
movzx eax, word [rsi + 0xe4]
mov word [rsi + 0x14c], ax
lea r8, [rsi + 0x138]
mov edx, 5
mov r9b, 1
mov rcx, r15
call fcn.14004e0dc
mov ecx, 1
cmp eax, ecx
jne 0x14004fba8
lea r8, [rsi + 0x13a]
lea edx, [rcx + 3]
mov r9b, cl
mov rcx, r15
call fcn.14004e0dc
mov ecx, 1
cmp eax, ecx
jne 0x14004fba8
lea r8, [rsi + 0x13c]
lea edx, [rcx + 6]
mov r9b, cl
mov rcx, r15
call fcn.14004e0dc
mov ecx, 1
cmp eax, ecx
jne 0x14004fba8
lea r8, [rsi + 0x13e]
lea edx, [rcx + 5]
mov r9b, cl
mov rcx, r15
call fcn.14004e0dc
mov ecx, 1
cmp eax, ecx
jne 0x14004fba8
lea r8, [rsi + 0x140]
mov edx, ecx
mov r9b, cl
mov rcx, r15
call fcn.14004e0dc
mov ecx, 1
cmp eax, ecx
jne 0x14004fba8
lea r8, [rsi + 0x142]
lea edx, [rcx + 1]
mov r9b, cl
mov rcx, r15
call fcn.14004e0dc
cmp eax, 1
jne 0x14004fba8
lea rcx, [rsi + 0x142]
movzx eax, word [rcx]
neg ax
mov word [rcx], ax
jmp 0x14004f635
movzx eax, word [rcx]
add ax, 0x1b
mov word [rsi + 0x138], ax
movzx eax, word [rdx]
add ax, 0x1b
mov word [rsi + 0x13a], ax
test byte [rsi + 0x455], 1
je 0x14004f754
movzx eax, word [rsi + 0x164]
mov word [rsi + 0x166], ax
movzx eax, word [rsi + 0xe0]
mov word [rsi + 0x108], ax
movsx ecx, word [rsi + 0xe2]
movsx eax, word [rsi + 0x166]
sub ecx, eax
movsx eax, word [rsi + 0xe0]
add eax, ecx
cdq
mov ecx, 2
idiv ecx
mov word [rsi + 0x10a], ax
movsx eax, word [rsi + 0x108]
shl eax, 0x10
sub eax, dword [rsi + 0xc0]
mov dword [rsi + 0x10c], eax
movsx eax, word [rsi + 0x108]
shl eax, 0x10
sub eax, dword [rsi + 0xb8]
mov dword [rsi + 0x114], eax
movsx eax, word [rsi + 0x10a]
shl eax, 0x10
add eax, dword [rsi + 0xbc]
mov dword [rsi + 0x118], eax
movsx edx, word [rsi + 0x10a]
shl edx, 0x10
add edx, dword [rsi + 0xb4]
mov dword [rsi + 0x110], edx
add edx, 0x8000
sar edx, 0x10
neg dx
mov word [rsi + 0x11e], dx
mov eax, dword [rsi + 0x118]
add eax, r12d
sar eax, 0x10
mov word [rsi + 0x11c], ax
sub ax, word [rsi + 0x164]
add ax, word [rsi + 0x11e]
mov word [rsi + 0x126], ax
jns 0x14004f72a
sub word [rsi + 0x11c], ax
mov word [rsi + 0x126], r14w
movzx eax, word [rsi + 0xe0]
mov word [rsi + 0x120], ax
movzx eax, word [rsi + 0xe2]
mov word [rsi + 0x122], ax
movzx eax, word [rsi + 0xe4]
mov word [rsi + 0x124], ax
movzx eax, word [rsp + 0x58]
mov word [rsi + 0xd0], ax
movzx eax, word [rsp + 0x5a]
mov word [rsi + 0xd2], ax
movzx eax, word [rsp + 0x5c]
mov word [rsi + 0xcc], ax
movzx eax, word [rsp + 0x5e]
mov word [rsi + 0xce], ax
mov eax, dword [rsp + 0x78]
lea eax, [rax + rax*4]
lea eax, [rax*2 + 0x8000]
sar eax, 0x10
mov word [rsi + 0xea], ax
test ax, ax
jne 0x14004f7a6
mov eax, 0xffffff9c
movzx ecx, ax
call fcn.140059b04
mov dword [rsi + 0xc4], eax
movsx eax, word [rsp + 0x60]
mov dword [rsi + 0x100], eax
movsx eax, word [rsp + 0x62]
mov dword [rsi + 0x104], eax
movzx eax, word [rsp + 0x64]
mov word [rsi + 0xee], ax
movzx eax, word [rsp + 0x66]
mov word [rsi + 0xf0], ax
movzx eax, word [rsp + 0x68]
mov word [rsi + 0xf2], ax
movzx eax, word [rsp + 0x6a]
mov word [rsi + 0xf4], ax
movzx eax, word [rsp + 0x6c]
mov word [rsi + 0xf6], ax
movzx eax, word [rsp + 0x6e]
mov word [rsi + 0xf8], ax
movzx eax, word [rsp + 0x70]
mov word [rsi + 0xfa], ax
movzx eax, word [rsp + 0x72]
mov word [rsi + 0xfc], ax
test r13, r13
je 0x14004f8a2
lea r8, [rsi + 0x188]
mov r9d, 0x40
mov edx, ebx
mov rcx, r13
call fcn.140089cb0
lea r12, [rsi + 0x288]
mov r9d, 0x40
mov r8, r12
mov edx, ebx
mov rcx, r13
call fcn.140089ee4
lea r8, [rsi + 0x208]
mov r9d, 0x40
mov edx, ebx
mov rcx, r13
call fcn.140089e4c
lea r8, [rsi + 0x308]
mov r9d, 0x8b
mov edx, ebx
mov rcx, r13
call fcn.140089e4c
mov ebx, dword [rsp + 0xb4]
mov r15, qword [rsp + 0xe8]
jmp 0x14004f9d1
mov ebx, dword [rsp + 0xb4]
mov r15, qword [rsp + 0xe8]
cmp byte [rsp + 0x160], r14b
je 0x14004f905
lea rax, [rsi + 0xac]
lea r9, [rsi + 0x188]
mov r8d, 1
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], rax
movzx eax, word [rsp + 0x150]
mov word [rsp + 0x30], ax
mov byte [rsp + 0x28], r14b
mov dword [rsp + 0x20], 0x80
mov edx, ebx
mov rcx, r15
call fcn.140042e00
test eax, eax
je 0x14004fba8
lea r12, [rsi + 0x288]
mov r8d, 2
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], r14
movzx eax, word [rsp + 0x150]
mov word [rsp + 0x30], ax
mov byte [rsp + 0x28], r14b
mov dword [rsp + 0x20], 0x80
mov r9, r12
mov edx, ebx
mov rcx, r15
call fcn.140042e00
test eax, eax
je 0x14004fba8
lea r9, [rsi + 0x208]
mov r8d, 6
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], r14
movzx eax, word [rsp + 0x150]
mov word [rsp + 0x30], ax
mov byte [rsp + 0x28], r14b
mov dword [rsp + 0x20], 0x80
mov edx, ebx
mov rcx, r15
call fcn.140042e00
test eax, eax
je 0x14004fba8
lea r9, [rsi + 0x308]
mov r8d, 3
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], r14
movzx eax, word [rsp + 0x150]
mov word [rsp + 0x30], ax
mov byte [rsp + 0x28], 1
mov dword [rsp + 0x20], 0x116
mov edx, ebx
mov rcx, r15
call fcn.140042e00
test eax, eax
je 0x14004fba8
mov word [rsi + 0x422], r14w
mov r9d, 1
test r13, r13
je 0x14004fa2e
mov r8d, dword [rsp + 0x170]
mov rax, qword [r13 + 0x100]
movzx ecx, r14w
cmp byte [r8 + rax], r14b
je 0x14004fa08
mov word [rsi + 0x422], r9w
mov ecx, r9d
mov rax, qword [r13 + 0xe0]
mov edx, 0x190
cmp word [rax + r8*2], dx
jbe 0x14004fa26
or cx, 0x20
mov word [rsi + 0x422], cx
mov r10d, 2
jmp 0x14004fa7a
movzx r8d, word [rdi + 0x2c]
movzx edx, r14w
movzx eax, r8w
ror ax, 8
mov r10d, 2
test r9b, al
je 0x14004fa5a
mov word [rsi + 0x422], r10w
movzx r8d, word [rdi + 0x2c]
mov edx, r10d
movzx ecx, dx
ror r8w, 8
test r10b, r8b
je 0x14004fa75
or dx, r9w
mov word [rsi + 0x422], dx
movzx ecx, dx
mov edx, 0x190
or cx, 4
mov word [rsi + 0x422], cx
mov eax, dword [rsp + 0xa0]
mov word [rsi + 0xec], ax
test byte [rsi + 0x457], r10b
je 0x14004facf
mov al, byte [rsi + 0x422]
and al, r10b
neg al
sbb cx, cx
and cx, 0x12c
add cx, dx
movzx edx, cx
mov word [rsi + 0xec], dx
mov eax, 0x51eb851f
mul edx
shr edx, 5
add dl, r9b
mov byte [rsi + 0x15a], dl
test r13, r13
jne 0x14004fb65
lea r8d, [r13 + 0x11]
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], r14
movzx r13d, word [rsp + 0x150]
mov word [rsp + 0x30], r13w
mov byte [rsp + 0x28], r14b
lea edi, [r8 + 0x6f]
mov dword [rsp + 0x20], edi
mov r9, r12
mov edx, ebx
mov rcx, r15
call fcn.140042e00
cmp byte [0x1400c1452], r14b
je 0x14004fb65
cmp byte [rsp + 0x160], r14b
je 0x14004fb57
lea rax, [rsi + 0xac]
lea r9, [rsi + 0x188]
lea r8d, [rdi - 0x70]
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], rax
mov word [rsp + 0x30], r13w
mov byte [rsp + 0x28], r14b
mov dword [rsp + 0x20], edi
mov edx, ebx
mov rcx, r15
call fcn.140042e00
mov eax, dword [rsp + 0xa0]
mov word [rsi + 0xec], ax
mov r8, rsi
mov edx, ebx
mov rcx, r15
call fcn.14004cc80
mov edx, 1
cmp eax, edx
jne 0x14004fba8
mov al, byte [rsi + 0x455]
test dl, al
je 0x14004fba5
or rcx, 0xffffffffffffffff
inc rcx
cmp word [rsi + rcx*2 + 0x188], r14w
jne 0x14004fb89
cmp rcx, 0x3e
jbe 0x14004fba5
and al, 0xfe
mov byte [rsi + 0x455], al
mov r14d, edx
mov eax, r14d
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret