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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x368
movabs rax, 0xbc112a76fcad7
mov qword [rsp + 0x278], rax
mov rax, qword [0x1800c36c8]
mov qword [rsp + 0x90], rax
mov rax, qword [0x1800c3688]
mov qword [rsp + 0x68], rax
movzx eax, byte [0x1800c36c4]
mov byte [rsp + 0x22], al
mov eax, dword [0x1800c35bc]
mov qword [rsp + 0x60], rax
movzx eax, word [0x1800c3624]
mov byte [rsp + 0x23], al
movzx eax, word [0x1800c3698]
mov word [rsp + 0x2c], ax
mov rax, qword [0x1800c3660]
mov qword [rsp + 0x88], rax
movzx eax, byte [0x1800c35a6]
movsx ax, al
mov word [rsp + 0x3c], ax
movzx eax, word [0x1800c3624]
movzx eax, ax
mov qword [rsp + 0x78], rax
mov eax, 0x1cc3
mov word [rsp + 0x38], ax
mov byte [rsp + 0x21], 0x6f
mov byte [rsp + 0x20], 0xfc
movzx eax, byte [0x1800c35a4]
mov byte [rsp + 0x25], al
mov byte [rsp + 0x24], 4
mov dword [rsp + 0x58], 0xe8633595
mov eax, 0x895e
mov word [rsp + 0x50], ax
mov eax, 0x4988
mov word [rsp + 0x28], ax
movsx rax, word [0x1800c36d0]
mov qword [rsp + 0xa0], rax
movsx rax, word [0x1800c360c]
mov qword [rsp + 0x98], rax
mov eax, 0xa89a
mov word [rsp + 0x40], ax
mov eax, 0x1f90
mov word [rsp + 0x34], ax
mov byte [rsp + 0xa8], 0x9a
mov eax, 0x20
mov word [rsp + 0x1c4], ax
mov rax, qword [0x1800c36c8]
mov word [rsp + 0x1c8], ax
mov qword [rsp + 0x280], 0x2c
movzx eax, byte [0x1800c36c4]
mov byte [rsp + 0xcc], al
movsxd rax, dword [0x1800c36c0]
mov qword [rsp + 0x288], rax
mov qword [rsp + 0x290], 0x2a7fe015
movsx eax, byte [0x1800c35a5]
mov dword [rsp + 0x260], eax
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x68]
sub rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x68]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x68], rax
movzx eax, byte [rsp + 0x20]
mov rcx, qword [0x1800c36a8]
imul rcx, rax
mov rax, rcx
mov qword [0x1800c36a8], rax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xe0], eax
mov eax, 1
mov word [rsp + 0x34], ax
mov byte [rsp + 0x24], 0x85
movzx eax, word [rsp + 0x34]
movzx eax, ax
mov dword [rsp + 0x174], eax
cmp dword [rsp + 0x174], 0
je 0x18003d12c
cmp dword [rsp + 0x174], 1
je 0x18003d153
jmp 0x18003d201
movzx eax, word [0x1806dc008]
mov word [rsp + 0x38], ax
movzx eax, byte [0x1800c35a3]
movsx eax, al
sub eax, 0x4389acc8
mov word [0x1800c3624], ax
jmp 0x18003d201
movsx eax, byte [0x1800c35a5]
test eax, eax
jne 0x18003d16b
mov dword [rsp + 0x17c], 1
jmp 0x18003d176
mov dword [rsp + 0x17c], 0
movzx eax, byte [rsp + 0x25]
test eax, eax
jne 0x18003d18c
mov dword [rsp + 0x178], 1
jmp 0x18003d197
mov dword [rsp + 0x178], 0
mov eax, dword [rsp + 0x178]
mov ecx, dword [rsp + 0x17c]
and ecx, eax
mov eax, ecx
test eax, eax
jne 0x18003d1bb
mov qword [rsp + 0x1e8], 1
jmp 0x18003d1c7
mov qword [rsp + 0x1e8], 0
mov rax, qword [0x1800c3698]
not rax
movabs rcx, 0x396395df39bdd
sub rcx, rax
mov rax, rcx
imul rax, qword [rsp + 0x1e8]
movzx ecx, byte [rsp + 0x20]
xor rax, rcx
mov word [rsp + 0x3c], ax
mov dword [0x1800c36d4], 0x8145dcb1
mov eax, dword [rsp + 0xe0]
add eax, 0x12d
mov dword [rsp + 0xb8], eax
mov eax, dword [rsp + 0xe0]
add eax, 0x1f9
mov dword [rsp + 0x80], eax
movzx eax, word [rsp + 0x28]
cmp rax, qword [0x1800c36a8]
jge 0x18003d242
mov dword [rsp + 0x184], 1
jmp 0x18003d24d
mov dword [rsp + 0x184], 0
movzx eax, word [rsp + 0x28]
cmp eax, 0x4e
jge 0x18003d264
mov dword [rsp + 0x180], 1
jmp 0x18003d26f
mov dword [rsp + 0x180], 0
mov eax, dword [rsp + 0x180]
cmp dword [rsp + 0x184], eax
jl 0x18003d281
jmp 0x18003d2d7
movzx eax, byte [0x1800c35a3]
movsx rax, al
cmp qword [rsp + 0x78], rax
je 0x18003d2a0
mov dword [rsp + 0x188], 1
jmp 0x18003d2ab
mov dword [rsp + 0x188], 0
mov eax, dword [rsp + 0x188]
not eax
test eax, eax
je 0x18003d2d7
cmp qword [rsp + 0x68], 0
je 0x18003d2d7
movzx eax, word [rsp + 0x28]
inc ax
mov word [rsp + 0x28], ax
movsxd rax, dword [rsp + 0x58]
mov qword [rsp + 0x68], rax
mov eax, dword [rsp + 0xe0]
add eax, 0x14e
mov dword [rsp + 0x1bc], eax
mov rax, qword [0x1800c36a0]
cmp qword [rsp + 0x78], rax
jg 0x18003d305
mov dword [rsp + 0xec], 1
jmp 0x18003d310
mov dword [rsp + 0xec], 0
movsx eax, word [0x1800c36d0]
cmp dword [rsp + 0xec], eax
jl 0x18003d32d
mov dword [rsp + 0xf0], 1
jmp 0x18003d338
mov dword [rsp + 0xf0], 0
mov rax, qword [0x1800c36c8]
movzx ecx, byte [rsp + 0x21]
cmp rax, rcx
je 0x18003d36c
movzx eax, byte [0x1800c35a6]
movsx eax, al
movzx ecx, word [rsp + 0x40]
movzx ecx, cx
cmp eax, ecx
jg 0x18003d36c
mov dword [rsp + 0xf4], 0
jmp 0x18003d377
mov dword [rsp + 0xf4], 1
mov eax, dword [rsp + 0xf0]
not eax
cmp eax, dword [rsp + 0xf4]
jne 0x18003d4c9
movzx eax, byte [rsp + 0x22]
movzx eax, al
cmp rax, qword [rsp + 0x78]
jl 0x18003d3a9
mov dword [rsp + 0xfc], 1
jmp 0x18003d3b4
mov dword [rsp + 0xfc], 0
movzx eax, byte [rsp + 0x22]
movzx eax, al
cmp eax, 0xe
jl 0x18003d3ce
mov dword [rsp + 0xf8], 1
jmp 0x18003d3d9
mov dword [rsp + 0xf8], 0
mov eax, dword [rsp + 0xf8]
cmp dword [rsp + 0xfc], eax
jne 0x18003d3fd
mov rax, qword [rsp + 0x90]
mov qword [0x1800c36d8], rax
jmp 0x18003d4c7
mov eax, dword [0x1800c36d4]
test eax, eax
jne 0x18003d415
mov qword [rsp + 0x1f0], 1
jmp 0x18003d421
mov qword [rsp + 0x1f0], 0
mov rax, qword [rsp + 0x68]
imul rax, qword [rsp + 0x1f0]
not rax
movzx ecx, word [rsp + 0x3c]
mov edx, dword [rsp + 0x58]
or edx, ecx
mov ecx, edx
movsxd rcx, ecx
imul rax, rcx
test rax, rax
jne 0x18003d459
mov qword [rsp + 0x1e0], 1
jmp 0x18003d465
mov qword [rsp + 0x1e0], 0
movzx eax, byte [rsp + 0x21]
test eax, eax
jne 0x18003d47b
mov dword [rsp + 0x100], 1
jmp 0x18003d486
mov dword [rsp + 0x100], 0
movzx eax, byte [rsp + 0x25]
not eax
mov ecx, dword [rsp + 0x100]
add ecx, eax
mov eax, ecx
cdqe
mov rcx, qword [0x1800c3680]
not rcx
movzx edx, word [rsp + 0x2c]
add rcx, rdx
sub rax, rcx
mov rcx, qword [rsp + 0x1e0]
sub rcx, rax
mov rax, rcx
not rax
mov qword [0x1800c3698], rax
jmp 0x18003d4f8
cmp dword [0x1800c35d4], 0xcb
jne 0x18003d4f8
mov rax, qword [0x1800c36b0]
movabs rcx, 0x8e02d33170022
add rax, rcx
mov qword [rsp + 0x78], rax
mov eax, 0xd2e6
mov word [rsp + 0x3c], ax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xe4], eax
movzx eax, byte [rsp + 0x22]
movzx eax, al
test eax, eax
je 0x18003d53b
mov eax, 2
imul rax, rax, 3
lea rcx, [0x1806ff900]
movzx eax, word [rcx + rax]
mov rcx, qword [0x1800c3680]
and rcx, rax
mov rax, rcx
mov qword [0x1800c3680], rax
jmp 0x18003d560
movzx eax, byte [rsp + 0x22]
movzx eax, al
test eax, eax
je 0x18003d560
movzx eax, byte [0x1800c35a3]
movsx eax, al
add eax, 0xa8
cdqe
mov qword [rsp + 0x98], rax
mov eax, dword [rsp + 0xe4]
add eax, 0x7f
mov dword [rsp + 0xbc], eax
mov eax, dword [rsp + 0xe4]
add eax, 0xbf
mov dword [rsp + 0x264], eax
mov eax, dword [rsp + 0xe4]
add eax, 0x3f2
mov dword [rsp + 0x1c0], eax
movzx eax, word [rsp + 0x2c]
movabs rcx, 0x119b72002e20e
add rax, rcx
mov qword [0x1800c3660], rax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xac], eax
movsx eax, word [0x1800c360c]
test eax, eax
je 0x18003d64c
movsx rax, byte [rsp + 0x24]
mov rcx, qword [0x1800c36e0]
cmp rax, rcx
jae 0x18003d604
movzx eax, byte [0x1806dc008]
mov byte [rsp + 0x20], al
mov eax, 2
imul rax, rax, 0x4a
lea rcx, [0x1806dc010]
movzx edx, word [rsp + 0x2c]
mov word [rcx + rax], dx
jmp 0x18003d647
movzx eax, byte [0x1800c35a6]
movsx eax, al
test eax, eax
je 0x18003d647
movzx eax, word [rsp + 0x38]
movzx eax, ax
add eax, 0x283
movzx ecx, byte [rsp + 0x21]
sub ecx, eax
mov eax, ecx
mov byte [rsp + 0x21], al
mov rax, qword [rsp + 0x60]
movabs rcx, 0x3d59b5413fb8f
imul rax, rcx
mov qword [rsp + 0x98], rax
jmp 0x18003d6dc
movzx eax, byte [str.not_a_stream]
mov rcx, qword [rsp + 0xa0]
cmp rax, rcx
jl 0x18003d688
mov eax, 1
imul rax, rax, 7
lea rcx, [0x18076a270]
movzx edx, byte [0x1800c36c0]
mov byte [rcx + rax], dl
mov eax, dword [rsp + 0x58]
add eax, 0x31
mov word [rsp + 0x34], ax
jmp 0x18003d6dc
movabs rax, 0xc26f067edb29a
xor ecx, ecx
cmp rcx, rax
je 0x18003d6ad
movzx eax, word [rsp + 0x28]
mov ecx, dword [0x1800c3594]
add eax, ecx
mov word [rsp + 0x28], ax
jmp 0x18003d6dc
movabs rax, 0x6862803a418a8
xor ecx, ecx
cmp rcx, rax
je 0x18003d6cc
movzx eax, byte [rsp + 0x23]
movzx eax, al
not eax
test eax, eax
jne 0x18003d6d7
movzx eax, word [rsp + 0x50]
cmp eax, dword [rsp + 0x58]
jl 0x18003d6dc
mov byte [rsp + 0x21], 0xb
mov eax, dword [rsp + 0xac]
add eax, 0x22d
mov dword [rsp + 0x268], eax
movzx eax, byte [0x1800c35a4]
not eax
imul eax, eax, 0x15f6
mov dword [0x1800c35bc], eax
mov eax, dword [rsp + 0xac]
add eax, 0x220
mov dword [rsp + 0x26c], eax
mov eax, dword [rsp + 0xac]
add eax, 0x10e
mov dword [rsp + 0x12c], eax
mov qword [0x1800c36c8], 1
movzx eax, word [rsp + 0x40]
movzx eax, ax
mov qword [0x1800c3688], rax
movabs rax, 0xb4f751a4b3349
mov qword [0x1800c3670], rax
mov rax, qword [0x1800c36c8]
mov qword [rsp + 0x1f8], rax
cmp qword [rsp + 0x1f8], 0
je 0x18003d77c
cmp qword [rsp + 0x1f8], 1
je 0x18003d7d8
jmp 0x18003d7e5
movsx eax, byte [0x1800c35a7]
test eax, eax
jne 0x18003d794
mov dword [rsp + 0x108], 1
jmp 0x18003d79f
mov dword [rsp + 0x108], 0
cmp dword [rsp + 0x58], 0
jne 0x18003d7b3
mov dword [rsp + 0x104], 1
jmp 0x18003d7be
mov dword [rsp + 0x104], 0
mov eax, dword [rsp + 0x104]
mov ecx, dword [rsp + 0x108]
add ecx, eax
mov eax, ecx
not eax
mov byte [rsp + 0x24], al
jmp 0x18003d7e5
movzx eax, word [rsp + 0x3c]
dec ax
mov word [rsp + 0x3c], ax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xb0], eax
mov eax, dword [rsp + 0xb0]
add eax, 0x10f
mov dword [rsp + 0x1b8], eax
mov rax, qword [rsp + 0x88]
add rax, 0xb3c4
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0xb0]
add eax, 0x82
mov dword [rsp + 0x240], eax
cmp qword [0x1800c3670], 0
jne 0x18003d840
mov rax, qword [0x1800c36b8]
test rax, rax
je 0x18003d864
mov eax, dword [0x1800c36d4]
mov eax, eax
movabs rcx, 0x5c0e206157f8b
sub rax, rcx
movzx ecx, byte [rsp + 0x20]
sub rcx, rax
mov rax, rcx
mov byte [rsp + 0x20], al
mov eax, dword [rsp + 0xb0]
add eax, 0xa7
mov dword [rsp + 0x1cc], eax
movzx eax, word [0x1800c3624]
movzx eax, ax
mov qword [0x1800c36a0], rax
movzx eax, byte [rsp + 0x25]
test eax, eax
jne 0x18003d89e
mov dword [rsp + 0x10c], 1
jmp 0x18003d8a9
mov dword [rsp + 0x10c], 0
movsx eax, word [0x1800c36d0]
test eax, eax
jne 0x18003d8c2
mov qword [rsp + 0x200], 1
jmp 0x18003d8ce
mov qword [rsp + 0x200], 0
movzx eax, word [rsp + 0x38]
movzx eax, ax
movsx ecx, byte [0x1800c35a5]
sub eax, ecx
not eax
imul eax, dword [rsp + 0x10c]
cdqe
movzx ecx, word [rsp + 0x3c]
mov rdx, qword [rsp + 0x88]
mov r8, qword [rsp + 0x200]
add r8, rdx
mov rdx, r8
imul rcx, rdx
xor rax, rcx
mov qword [rsp + 0x60], rax
movzx eax, word [0x1806dc008]
mov word [rsp + 0x34], ax
movabs rax, 0x9ae5b704cf40b
mov rcx, qword [0x1800c3678]
imul rcx, rax
mov rax, rcx
mov word [0x1800c360c], ax
mov eax, dword [rsp + 0x1cc]
mov ecx, dword [rsp + 0x1b8]
imul eax, ecx
add eax, 0xffff4f37
mov dword [rsp + 0x1d0], eax
movzx eax, word [0x1800c3624]
movzx eax, ax
test eax, eax
je 0x18003d98f
mov eax, dword [0x1800c3594]
test eax, eax
je 0x18003d98d
movabs rax, 0x1e057db2a699
mov rcx, qword [rsp + 0x68]
add rcx, rax
mov rax, rcx
mov byte [0x1800c35a6], al
jmp 0x18003d9c4
movzx eax, word [rsp + 0x28]
test eax, eax
je 0x18003d9c4
movzx eax, word [rsp + 0x38]
movzx eax, ax
sub eax, 0xea
cdqe
mov rcx, qword [rsp + 0x68]
and rcx, rax
mov rax, rcx
mov qword [rsp + 0x68], rax
movzx eax, word [rsp + 0x40]
movzx eax, ax
mov qword [rsp + 0x60], rax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xb4], eax
mov eax, dword [rsp + 0xb4]
add eax, 0x3f7
mov dword [rsp + 0x1a0], eax
cmp dword [0x1800c35d4], 0
je 0x18003db4b
movsx eax, byte [rsp + 0x24]
movzx ecx, word [rsp + 0x38]
movzx ecx, cx
cmp eax, ecx
je 0x18003da44
movzx eax, byte [0x1800c35a6]
movsx eax, al
test eax, eax
jne 0x18003da1d
mov dword [rsp + 0x110], 1
jmp 0x18003da28
mov dword [rsp + 0x110], 0
mov eax, dword [rsp + 0x110]
cmp dword [0x1800c36c4], eax
jl 0x18003da44
mov dword [rsp + 0x11c], 0
jmp 0x18003da4f
mov dword [rsp + 0x11c], 1
cmp dword [0x1800c36c4], 0
jne 0x18003da66
mov qword [rsp + 0x208], 1
jmp 0x18003da72
mov qword [rsp + 0x208], 0
mov rax, qword [rsp + 0x90]
cmp qword [rsp + 0x208], rax
ja 0x18003da91
mov dword [rsp + 0x114], 1
jmp 0x18003da9c
mov dword [rsp + 0x114], 0
mov eax, dword [0x1800c3594]
cmp eax, dword [rsp + 0x114]
jle 0x18003dab8
mov dword [rsp + 0x118], 1
jmp 0x18003dac3
mov dword [rsp + 0x118], 0
mov eax, dword [rsp + 0x118]
cmp dword [rsp + 0x11c], eax
jg 0x18003dae0
mov dword [rsp + 0x120], 1
jmp 0x18003daeb
mov dword [rsp + 0x120], 0
mov eax, dword [rsp + 0x120]
not eax
test eax, eax
je 0x18003db04
mov dword [0x1800c35d4], 2
jmp 0x18003db49
movsx eax, byte [rsp + 0x24]
not eax
cdqe
cmp rax, qword [0x1800c3670]
jle 0x18003db23
mov dword [rsp + 0x124], 1
jmp 0x18003db2e
mov dword [rsp + 0x124], 0
mov eax, dword [rsp + 0x124]
not eax
test eax, eax
je 0x18003db49
movsx eax, byte [rsp + 0x24]
sar eax, 4
mov dword [0x1800c36d4], eax
jmp 0x18003db9a
movzx eax, byte [rsp + 0x20]
imul rax, qword [rsp + 0x78]
not rax
test rax, rax
je 0x18003db9a
mov rax, qword [0x1800c36d8]
test rax, rax
je 0x18003db7f
movzx eax, byte [0x1800c35a3]
movsx rax, al
mov qword [rsp + 0x210], rax
jmp 0x18003db8c
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x210], rax
movzx eax, byte [rsp + 0x210]
mov byte [0x1800c35a3], al
mov eax, dword [rsp + 0xb4]
add eax, 0x3dd
mov dword [rsp + 0x160], eax
mov eax, dword [rsp + 0xb4]
add eax, 0x310
mov dword [rsp + 0x15c], eax
mov dword [rsp + 0xc0], 0
mov dword [rsp + 0xc4], 0
movzx eax, byte [rsp + 0x23]
movzx eax, al
test eax, eax
je 0x18003dbf1
mov rax, qword [rsp + 0x98]
test rax, rax
je 0x18003dbf1
jmp 0x18003dc2b
movzx eax, byte [rsp + 0x20]
test eax, eax
je 0x18003dc2b
mov rax, qword [0x1800c3668]
add rax, qword [rsp + 0x68]
mov rcx, qword [0x1800c3668]
add rcx, rax
mov rax, rcx
mov qword [0x1800c3668], rax
movzx eax, byte [rsp + 0x21]
shl eax, 8
cdqe
mov qword [0x1800c3660], rax
mov rax, qword [rsp + 0xa0]
add rax, 0xcc29
mov qword [0x1800c3680], rax
mov qword [rsp + 0x98], 0x5120
mov rax, qword [0x1800c36a0]
movabs rcx, 0x57cd419122f92
imul rax, rcx
mov rcx, qword [0x1800c3678]
or rcx, rax
mov rax, rcx
mov qword [0x1800c3678], rax
mov rax, qword [rsp + 0x388]
mov qword [rsp + 0x198], rax
mov qword [0x1800c3660], 4
mov rax, qword [0x1800c36c8]
shr rax, 2
mov qword [0x1800c36a0], rax
movzx eax, word [rsp + 0x40]
movzx eax, ax
sub eax, dword [0x1800c35d4]
movzx ecx, word [rsp + 0x40]
movzx ecx, cx
or ecx, eax
mov eax, ecx
mov word [rsp + 0x40], ax
mov rax, qword [0x1800c3660]
mov qword [rsp + 0x190], rax
cmp qword [rsp + 0x190], 0
je 0x18003dd1c
cmp qword [rsp + 0x190], 1
je 0x18003dd82
cmp qword [rsp + 0x190], 2
je 0x18003dd9f
cmp qword [rsp + 0x190], 3
je 0x18003ddab
cmp qword [rsp + 0x190], 4
je 0x18003ddd1
jmp 0x18003ddfe
movzx eax, byte [0x1800c35a4]
test eax, eax
jne 0x18003dd35
mov qword [rsp + 0x218], 1
jmp 0x18003dd41
mov qword [rsp + 0x218], 0
mov rax, qword [rsp + 0x88]
not rax
and rax, qword [rsp + 0x218]
mov rcx, qword [0x1800c3660]
not rcx
sub rax, rcx
mov byte [0x1800c35a3], al
mov rax, qword [0x1800c3668]
movzx ecx, byte [str.not_a_stream]
lea rax, [rcx + rax - 0x6c]
mov byte [str.not_a_stream], al
jmp 0x18003ddfe
mov rax, qword [0x1800c3668]
dec rax
mov qword [0x1800c3668], rax
mov eax, 8
mov word [rsp + 0x28], ax
jmp 0x18003ddfe
mov eax, 0x7803
mov word [rsp + 0x34], ax
jmp 0x18003ddfe
mov eax, 1
imul rax, rax, 0x62ed
lea rcx, [0x1806dc150]
movzx eax, byte [rcx + rax]
movzx ecx, byte [rsp + 0x25]
add ecx, eax
mov eax, ecx
mov byte [rsp + 0x25], al
jmp 0x18003ddfe
movsx eax, byte [0x1800c35a5]
movzx ecx, word [rsp + 0x38]
movzx ecx, cx
add eax, ecx
movsx ecx, byte [0x1800c35a5]
add ecx, eax
mov eax, ecx
mov byte [0x1800c35a5], al
movzx eax, byte [0x1806dc008]
mov byte [rsp + 0x21], al
mov rax, qword [rsp + 0x198]
add rax, 4
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x2c0]
mov rdi, rax
xor eax, eax
mov ecx, 0x98
rep stosb byte [rdi], al
mov rax, qword [rsp + 0x60]
sub rax, 0xba9e
mov byte [0x1800c35eb], al
movzx eax, byte [rsp + 0x23]
movzx eax, al
mov rcx, qword [rsp + 0xa0]
add rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0xa0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0x70], 0
mov dword [rsp + 0x30], 0
mov rax, qword [0x1800c36c8]
mov rcx, qword [rsp + 0x60]
xor rax, rcx
mov qword [0x1800c36c8], rax
mov rax, qword [rsp + 0x198]
movzx eax, byte [rax + 2]
mov dword [rsp + 0x1b4], eax
movsx eax, byte [0x1800c35a5]
imul eax, eax, 0x139e625d
mov dword [rsp + 0x58], eax
mov eax, dword [0x1800c36d4]
mov eax, eax
movabs rcx, 0xc05ab48b615c7
sub rax, rcx
mov qword [0x1800c3668], rax
mov eax, dword [rsp + 0xb8]
mov ecx, dword [rsp + 0xb8]
sub eax, ecx
mov ecx, dword [rsp + 0x80]
mov edx, dword [rsp + 0xb8]
imul ecx, edx
imul eax, ecx
mov ecx, dword [rsp + 0x80]
mov edx, dword [rsp + 0x80]
xor ecx, edx
mov edx, dword [rsp + 0x80]
mov edi, dword [rsp + 0x1bc]
xor edx, edi
add ecx, edx
imul eax, ecx
xor ecx, ecx
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0xc0], eax
cmp dword [rsp + 0x58], 0
je 0x18003df32
movzx eax, byte [rsp + 0x20]
mov qword [rsp + 0x220], rax
jmp 0x18003df42
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x220], rax
movzx eax, byte [rsp + 0x220]
mov byte [0x1800c35a7], al
mov eax, dword [rsp + 0xbc]
mov ecx, dword [rsp + 0xbc]
sub eax, ecx
mov ecx, dword [rsp + 0xbc]
mov edx, dword [rsp + 0x1c0]
add ecx, edx
imul eax, ecx
xor ecx, ecx
sub ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x390]
mov dword [rcx], eax
mov rax, qword [rsp + 0x390]
mov eax, dword [rax]
mov dword [rsp + 0xc4], eax
mov r8d, 0x98
xor edx, edx
lea rcx, [rsp + 0x2c0]
call fcn.180039930
mov eax, dword [rsp + 0x1b4]
cmp dword [rsp + 0x30], eax
jae 0x18003e434
mov eax, 3
mov word [rsp + 0x2c], ax
movzx eax, word [rsp + 0x3c]
test eax, eax
jne 0x18003dfdb
mov qword [rsp + 0x228], 1
jmp 0x18003dfe7
mov qword [rsp + 0x228], 0
mov rax, qword [0x1800c36b8]
test rax, rax
jne 0x18003e000
mov dword [rsp + 0x128], 1
jmp 0x18003e00b
mov dword [rsp + 0x128], 0
mov rax, qword [0x1800c3690]
not rax
mov rcx, qword [rsp + 0x228]
imul rcx, rax
mov rax, rcx
movzx ecx, byte [0x1800c35a3]
movsx rcx, cl
sub rcx, qword [0x1800c3678]
movzx edx, byte [rsp + 0x22]
movzx edx, dl
sub edx, dword [rsp + 0x128]
movsxd rdx, edx
sub rcx, rdx
add rax, rcx
mov qword [rsp + 0x98], rax
movzx eax, word [rsp + 0x2c]
mov dword [rsp + 0x84], eax
cmp dword [rsp + 0x84], 0
je 0x18003e08c
cmp dword [rsp + 0x84], 1
je 0x18003e0a3
cmp dword [rsp + 0x84], 2
je 0x18003e0af
cmp dword [rsp + 0x84], 3
je 0x18003e0c1
jmp 0x18003e0d4
movzx eax, word [0x1800c35ec]
cwde
movzx ecx, byte [rsp + 0x20]
lea eax, [rcx + rax - 0x14]
mov byte [rsp + 0x20], al
jmp 0x18003e0d4
movzx eax, word [rsp + 0x34]
mov word [rsp + 0x28], ax
jmp 0x18003e0d4
movzx eax, byte [str.not_a_stream]
shl eax, 6
mov byte [0x1800c35d3], al
jmp 0x18003e0d4
movzx eax, byte [rsp + 0x22]
movzx eax, al
xor rax, qword [0x1800c3680]
mov byte [rsp + 0x22], al
mov eax, dword [rsp + 0x12c]
mov ecx, dword [rsp + 0x12c]
xor eax, ecx
mov ecx, dword [rsp + 0x1d0]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x70], eax
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax + 1]
and al, 0xf
movzx eax, al
mov dword [rsp + 0x130], eax
cmp dword [rsp + 0x130], 0xa
ja case.0x18003e12f.3
movsxd rax, dword [rsp + 0x130]
lea rcx, [0x180000000]
mov eax, dword [rcx + rax*4 + 0x3ef3c]
add rax, rcx
jmp rax
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
cmp eax, 4
jne 0x18003e14e
xor eax, eax
jmp 0x18003ef32
mov rax, qword [rsp + 0x390]
mov eax, dword [rax]
add eax, 8
mov rcx, qword [rsp + 0x390]
mov dword [rcx], eax
jmp case.0x18003e12f.3
mov rax, qword [rsp + 0x48]
add rax, 2
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x48]
movzx eax, word [rax]
mov dword [rsp + 0x70], eax
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
test eax, eax
jne 0x18003e1b0
mov eax, dword [rsp + 0x70]
shl eax, 3
mov dword [rsp + 0x70], eax
jmp 0x18003e1df
mov rax, qword [rsp + 0x48]
add rax, 2
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x48]
movzx eax, word [rax]
shl eax, 0x10
mov ecx, dword [rsp + 0x70]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x70], eax
mov rax, qword [rsp + 0x390]
mov eax, dword [rax]
add eax, dword [rsp + 0x70]
mov rcx, qword [rsp + 0x390]
mov dword [rcx], eax
jmp case.0x18003e12f.3
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
mov rcx, qword [rsp + 0x390]
mov ecx, dword [rcx]
lea eax, [rcx + rax*8 + 8]
mov rcx, qword [rsp + 0x390]
mov dword [rcx], eax
jmp case.0x18003e12f.3
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
cmp eax, 4
jne 0x18003e24e
xor eax, eax
jmp 0x18003ef32
mov rax, qword [rsp + 0x48]
movzx eax, word [rax + 2]
mov rcx, qword [rsp + 0x390]
mov ecx, dword [rcx]
lea eax, [rcx + rax*8]
mov rcx, qword [rsp + 0x48]
movzx ecx, byte [rcx + 1]
shr cl, 4
and cl, 0xf
movzx ecx, cl
mov dword [rsp + rcx*4 + 0x2c0], eax
mov rax, qword [rsp + 0x48]
add rax, 2
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
mov eax, dword [rsp + rax*4 + 0x2c0]
mov dword [rsp + 0xc0], eax
mov rax, qword [rsp + 0x390]
mov ecx, dword [rsp + 0xc4]
mov dword [rax], ecx
jmp case.0x18003e12f.3
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
cmp eax, 4
jne 0x18003e2e7
xor eax, eax
jmp 0x18003ef32
mov rax, qword [rsp + 0x48]
movzx eax, word [rax + 2]
mov rcx, qword [rsp + 0x390]
add eax, dword [rcx]
mov rcx, qword [rsp + 0x48]
movzx ecx, byte [rcx + 1]
shr cl, 4
and cl, 0xf
movzx ecx, cl
mov dword [rsp + rcx*4 + 0x2c0], eax
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
mov rcx, qword [rsp + 0x48]
movzx ecx, word [rcx + 4]
shl ecx, 0x10
add ecx, dword [rsp + rax*4 + 0x2c0]
mov eax, ecx
mov rcx, qword [rsp + 0x48]
movzx ecx, byte [rcx + 1]
shr cl, 4
and cl, 0xf
movzx ecx, cl
mov dword [rsp + rcx*4 + 0x2c0], eax
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
mov eax, dword [rsp + rax*4 + 0x2c0]
mov dword [rsp + 0xc0], eax
mov rax, qword [rsp + 0x390]
mov ecx, dword [rsp + 0xc4]
mov dword [rax], ecx
mov rax, qword [rsp + 0x48]
add rax, 4
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x30]
add eax, 2
mov dword [rsp + 0x30], eax
jmp case.0x18003e12f.3
mov rax, qword [rsp + 0x48]
add rax, 2
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0x30], eax
jmp case.0x18003e12f.3
mov rax, qword [rsp + 0x48]
add rax, 4
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x30]
add eax, 2
mov dword [rsp + 0x30], eax
jmp case.0x18003e12f.3
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
test eax, eax
jne 0x18003e400
mov rax, qword [rsp + 0x390]
mov eax, dword [rax]
add eax, 0x40
mov rcx, qword [rsp + 0x390]
mov dword [rcx], eax
jmp case.0x18003e12f.3
mov rax, qword [rsp + 0x390]
mov eax, dword [rax]
add eax, 0x48
mov rcx, qword [rsp + 0x390]
mov dword [rcx], eax
mov rax, qword [rsp + 0x48]
add rax, 2
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0x30], eax
jmp 0x18003dfa9
mov rax, qword [rsp + 0x198]
movzx eax, byte [rax]
shr al, 3
and al, 0x1f
movzx eax, al
sar eax, 2
and eax, 1
test eax, eax
je 0x18003ef28
movsx eax, byte [0x1800c35a7]
add eax, 0x8ba03b74
mov eax, eax
mov qword [rsp + 0x88], rax
mov rax, qword [0x1800c3660]
cmp rax, qword [0x1800c3698]
je 0x18003e480
jmp 0x18003e5ee
mov rax, qword [0x1800c3668]
movzx ecx, byte [str.not_a_stream]
cmp rax, rcx
ja 0x18003e4a0
mov dword [rsp + 0x138], 1
jmp 0x18003e4ab
mov dword [rsp + 0x138], 0
movzx eax, word [rsp + 0x2c]
not eax
test eax, eax
je 0x18003e4d0
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x18003e4d0
mov dword [rsp + 0x134], 1
jmp 0x18003e4db
mov dword [rsp + 0x134], 0
mov eax, dword [rsp + 0x134]
cmp dword [rsp + 0x138], eax
jg 0x18003e500
movzx eax, word [rsp + 0x28]
add eax, 0x48706f09
mov dword [0x1800c35d4], eax
jmp 0x18003e5ee
movzx eax, byte [0x1800c35d3]
test eax, eax
jne 0x18003e518
mov dword [rsp + 0x13c], 1
jmp 0x18003e523
mov dword [rsp + 0x13c], 0
movzx eax, word [0x1800c35ec]
cwde
cmp eax, dword [rsp + 0x13c]
jle 0x18003e541
mov dword [rsp + 0x144], 1
jmp 0x18003e54c
mov dword [rsp + 0x144], 0
mov rax, qword [0x1800c36a0]
test rax, rax
jne 0x18003e56c
cmp dword [rsp + 0x58], 0
je 0x18003e56c
mov dword [rsp + 0x140], 0
jmp 0x18003e577
mov dword [rsp + 0x140], 1
mov eax, dword [rsp + 0x140]
cmp dword [rsp + 0x144], eax
jl 0x18003e5c9
movzx eax, word [rsp + 0x50]
movsx ecx, word [0x1800c36d0]
not ecx
imul eax, ecx
not eax
mov dword [0x1800c35bc], eax
cmp qword [rsp + 0x78], 0
je 0x18003e5b3
movzx eax, byte [rsp + 0x23]
mov byte [rsp + 0x54], al
jmp 0x18003e5bc
movzx eax, byte [rsp + 0x21]
mov byte [rsp + 0x54], al
movzx eax, byte [rsp + 0x54]
mov dword [0x1800c36c0], eax
jmp 0x18003e5ee
cmp qword [rsp + 0x88], 0
je 0x18003e5ee
movzx eax, word [rsp + 0x50]
movzx ecx, word [0x1800c3624]
movzx ecx, cx
sub eax, ecx
cdqe
mov qword [0x1800c36a0], rax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xc8], eax
mov eax, dword [rsp + 0xc8]
add eax, 0x232
mov dword [rsp + 0x1d4], eax
mov rax, qword [rsp + 0x60]
cmp qword [rsp + 0x78], rax
je 0x18003e642
mov rax, qword [rsp + 0x60]
sub rax, 0xa38
mov dword [0x1800c36d4], eax
mov rax, qword [0x1800c36a8]
add rax, 0xd7ef
mov qword [rsp + 0x90], rax
jmp 0x18003e651
mov rax, qword [0x1800c3698]
sar rax, 1
mov qword [rsp + 0x68], rax
mov eax, dword [rsp + 0xc8]
add eax, 0x292
mov dword [rsp + 0x148], eax
movsx eax, byte [0x1800c35a7]
sub eax, 0x9f
mov word [rsp + 0x28], ax
movzx eax, byte [0x1800c35a6]
movsx eax, al
sub eax, 0x6b74
mov word [0x1800c3624], ax
mov eax, dword [rsp + 0xc8]
add eax, 0x364
mov dword [rsp + 0x244], eax
mov eax, dword [rsp + 0x148]
mov ecx, 0x38a
sub ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x148]
imul eax, ecx
mov ecx, dword [rsp + 0x1d4]
imul ecx, ecx, 0x2aa
cmp eax, ecx
je 0x18003ef28
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x68], rax
mov byte [0x1800c35a5], 0x1e
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xe8], eax
mov eax, dword [rsp + 0xe8]
add eax, 0xc6e5
mov dword [rsp + 0x24c], eax
movzx eax, byte [rsp + 0x23]
movzx eax, al
movsx ecx, byte [0x1800c35a7]
cmp eax, ecx
je 0x18003e71e
mov dword [rsp + 0x150], 1
jmp 0x18003e729
mov dword [rsp + 0x150], 0
movzx eax, byte [rsp + 0x23]
movzx eax, al
cmp eax, 0x16
je 0x18003e743
mov dword [rsp + 0x14c], 1
jmp 0x18003e74e
mov dword [rsp + 0x14c], 0
mov eax, dword [rsp + 0x14c]
cmp dword [rsp + 0x150], eax
jg 0x18003e775
movzx eax, byte [rsp + 0x21]
imul eax, eax, 0x4bf8
cdqe
mov qword [rsp + 0x88], rax
jmp 0x18003e7c6
movzx eax, word [rsp + 0x34]
movzx eax, ax
movzx ecx, byte [rsp + 0x20]
cmp eax, ecx
jle 0x18003e7c6
mov eax, dword [0x1806dc008]
mov qword [0x1800c3668], rax
movzx eax, byte [0x1800c35a6]
movsx rax, al
movzx ecx, byte [rsp + 0x20]
mov rdx, qword [rsp + 0x68]
imul rdx, rcx
mov rcx, rdx
imul rax, rcx
movzx ecx, word [rsp + 0x38]
movzx ecx, cx
and rax, rcx
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0xe8]
add eax, 0xdafe
mov dword [rsp + 0x250], eax
mov eax, 0x7024
mov word [rsp + 0x34], ax
mov eax, dword [0x1806dc008]
mov dword [0x1800c36c0], eax
mov eax, dword [rsp + 0xe8]
add eax, 0x2ed
mov dword [rsp + 0x154], eax
movzx eax, word [0x1800c3624]
movzx eax, ax
test eax, eax
je 0x18003e812
jmp 0x18003e825
movsx eax, byte [0x1800c35a7]
sar eax, 2
cdqe
mov qword [0x1800c3670], rax
mov eax, dword [rsp + 0x154]
mov ecx, dword [rsp + 0x154]
imul eax, ecx
xor eax, 0x88f69
mov dword [rsp + 0x1a8], eax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xd0], eax
mov eax, dword [rsp + 0xd0]
add eax, 0xb4
mov dword [rsp + 0x1d8], eax
mov eax, dword [rsp + 0xd0]
add eax, 0x8b31
mov dword [rsp + 0x248], eax
mov eax, dword [rsp + 0xd0]
add eax, 0xe527
mov dword [rsp + 0x158], eax
lea rax, [rsp + 0x298]
lea rcx, str.._AUIMarshal__
mov rdi, rax
mov rsi, rcx
mov ecx, 0x1e
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x298]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cdqe
mov qword [0x1800c36a8], rax
movsx rax, word [0x1800c360c]
mov rcx, qword [rsp + 0x98]
xor rcx, rax
mov rax, rcx
mov qword [rsp + 0x98], rax
mov rax, qword [0x1800c3660]
movzx ecx, byte [0x1800c35a4]
lea rax, [rcx + rax - 0x3e]
mov byte [0x1800c35a4], al
mov eax, dword [rsp + 0x158]
mov ecx, dword [rsp + 0x1d8]
imul eax, ecx
mov ecx, dword [rsp + 0x158]
or ecx, 0x8283
add eax, ecx
mov ecx, 0xa20714
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x1ac], eax
mov rax, qword [rsp + 0x198]
movzx eax, byte [rax + 2]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x15c]
or eax, 0x1af
mov ecx, dword [rsp + 0x160]
mov edx, dword [rsp + 0x1a0]
imul ecx, edx
add eax, ecx
mov ecx, dword [rsp + 0x15c]
mov edx, dword [rsp + 0x160]
imul ecx, edx
cmp eax, ecx
je 0x18003eedc
movsxd rax, dword [0x1800c36c4]
mov rcx, qword [0x1800c36a0]
not rcx
add rax, rcx
movzx ecx, byte [str.not_a_stream]
movzx edx, word [rsp + 0x50]
add ecx, edx
movsxd rcx, ecx
sub rax, rcx
mov word [rsp + 0x34], ax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xd4], eax
cmp qword [0x1800c3678], 0
je 0x18003ead5
mov rax, qword [0x1800c36e0]
movzx ecx, byte [0x1800c35a4]
not ecx
movsxd rcx, ecx
cmp rax, rcx
jbe 0x18003e9de
mov eax, dword [0x1800c36d4]
not eax
mov eax, eax
mov qword [rsp + 0x60], rax
jmp 0x18003ead3
movzx eax, word [rsp + 0x40]
movzx eax, ax
test eax, eax
je 0x18003ea02
movzx eax, word [rsp + 0x38]
movzx eax, ax
and eax, dword [0x1800c35d4]
mov word [rsp + 0x38], ax
jmp 0x18003ead3
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x18003ea62
movzx eax, byte [rsp + 0x21]
test eax, eax
jne 0x18003ea25
mov dword [rsp + 0x164], 1
jmp 0x18003ea30
mov dword [rsp + 0x164], 0
movzx eax, word [0x1800c35ec]
cwde
mov ecx, dword [rsp + 0x164]
imul ecx, eax
mov eax, ecx
mov byte [0x1800c35a4], al
movzx eax, byte [rsp + 0x23]
movzx eax, al
sub eax, 0x9edc
cdqe
mov qword [0x1800c36c8], rax
jmp 0x18003ead3
xor eax, eax
cmp eax, 0x9f71dcdb
je 0x18003ead3
mov rax, qword [rsp + 0x90]
not rax
test rax, rax
je 0x18003ead3
movzx eax, word [rsp + 0x3c]
add eax, 0x96
cdqe
mov rcx, qword [0x1800c36e0]
sub rax, rcx
movzx ecx, word [0x1800c3624]
movzx ecx, cx
movzx edx, byte [rsp + 0x20]
imul ecx, edx
movsxd rcx, ecx
movsx rdx, byte [rsp + 0x24]
mov rdi, qword [0x1800c3690]
or rdx, rdi
not rdx
add rcx, rdx
add rax, rcx
mov qword [0x1800c36b8], rax
movzx eax, byte [0x1806dc008]
mov byte [0x1800c35a5], al
jmp 0x18003eb10
cmp qword [rsp + 0x88], 0
je 0x18003eb10
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x98]
sub rax, rcx
mov rcx, qword [rsp + 0x60]
and rcx, rax
mov rax, rcx
mov qword [rsp + 0x60], rax
mov eax, dword [0x1800c3594]
sub eax, 0xe711
mov word [rsp + 0x40], ax
mov eax, dword [rsp + 0xd4]
add eax, 0x10d
mov dword [rsp + 0x254], eax
mov eax, dword [rsp + 0xd4]
add eax, 0x2d9
mov dword [rsp + 0xdc], eax
mov eax, dword [rsp + 0xd4]
add eax, 0x135
mov dword [rsp + 0x258], eax
mov eax, dword [0x1806dc008]
mov dword [rsp + 0xd8], eax
movzx eax, word [rsp + 0x2c]
mov ecx, dword [0x1800c3594]
add eax, ecx
test eax, eax
jne 0x18003eb75
mov qword [rsp + 0x230], 1
jmp 0x18003eb81
mov qword [rsp + 0x230], 0
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x230]
xor rcx, rax
mov rax, rcx
mov word [0x1800c3624], ax
mov eax, dword [rsp + 0xd8]
add eax, 0x4e
mov dword [rsp + 0x170], eax
mov eax, dword [rsp + 0xd8]
add eax, 0x71e9
mov dword [rsp + 0x25c], eax
mov eax, dword [rsp + 0xd8]
add eax, 0x9c
mov dword [rsp + 0x1a4], eax
mov rax, qword [0x1800c36d8]
mov rcx, qword [rsp + 0x60]
cmp rax, rcx
jae 0x18003ecc8
movabs rax, 0x6713f0dd76b59
mov rcx, qword [rsp + 0x68]
add rcx, rax
mov rax, rcx
movzx ecx, word [rsp + 0x2c]
sub rcx, rax
mov rax, rcx
mov word [rsp + 0x2c], ax
mov eax, dword [0x1800c36c0]
not eax
cdqe
mov rcx, qword [0x1800c36b8]
and rcx, rax
mov rax, rcx
test rax, rax
jne 0x18003ec39
mov qword [rsp + 0x238], 1
jmp 0x18003ec45
mov qword [rsp + 0x238], 0
movzx eax, word [rsp + 0x50]
not eax
cdqe
imul rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x238]
sub rcx, rax
mov rax, rcx
test rax, rax
jne 0x18003ec74
mov dword [rsp + 0x16c], 1
jmp 0x18003ec7f
mov dword [rsp + 0x16c], 0
mov rax, qword [0x1800c36d8]
test rax, rax
jne 0x18003ec98
mov dword [rsp + 0x168], 1
jmp 0x18003eca3
mov dword [rsp + 0x168], 0
mov eax, dword [0x1800c3594]
not eax
sub eax, dword [rsp + 0x168]
mov ecx, dword [rsp + 0x16c]
add ecx, eax
mov eax, ecx
cdqe
mov qword [0x1800c36e0], rax
jmp 0x18003ed09
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x18003ed09
mov eax, dword [0x1800c36c0]
sub eax, 0x29bc
cdqe
mov qword [0x1800c36d8], rax
movzx eax, byte [0x1800c35a3]
movsx eax, al
mov ecx, 4
imul rcx, rcx, 0x890e
lea rdx, [0x180823b70]
mov dword [rdx + rcx], eax
movzx eax, word [rsp + 0x28]
movzx ecx, byte [rsp + 0x25]
cmp eax, ecx
jg 0x18003ed47
mov eax, dword [0x1806dc008]
mov qword [rsp + 0x60], rax
mov rax, qword [0x1800c36d8]
mov rcx, qword [0x1800c36a0]
sub rax, rcx
mov rcx, qword [0x1800c36d8]
add rcx, rax
mov rax, rcx
mov qword [0x1800c36d8], rax
mov eax, dword [rsp + 0x170]
mov ecx, dword [rsp + 0x1a4]
sub eax, ecx
mov ecx, dword [rsp + 0x170]
xor ecx, 0xf4
add eax, ecx
xor eax, 0x6d
mov dword [rsp + 0x1b0], eax
mov eax, dword [rsp + 0x1a8]
mov ecx, dword [rsp + 0x1ac]
mov edx, dword [rsp + 0x30]
and edx, ecx
mov ecx, edx
cmp eax, ecx
je 0x18003eedc
mov dword [0x1800c3594], 4
mov eax, dword [0x1806dc008]
mov dword [rsp + 0x58], eax
movzx eax, word [rsp + 0x2c]
movabs rcx, 0x6394cbccdc546
sub rax, rcx
movzx ecx, word [rsp + 0x50]
sub rcx, rax
mov rax, rcx
mov word [rsp + 0x50], ax
mov eax, dword [0x1800c3594]
mov dword [rsp + 0x74], eax
cmp dword [rsp + 0x74], 0
je 0x18003edfa
cmp dword [rsp + 0x74], 1
je 0x18003ee0f
cmp dword [rsp + 0x74], 2
je 0x18003ee28
cmp dword [rsp + 0x74], 3
je 0x18003ee3f
cmp dword [rsp + 0x74], 4
je 0x18003ee83
jmp 0x18003eea6
imul eax, dword [0x1800c35d4], 0xb5
mov dword [0x1800c36c4], eax
jmp 0x18003eea6
mov qword [0x1800c3698], 0x16
mov qword [rsp + 0x90], 0xfb4c
jmp 0x18003eea6
mov eax, 0xa69b68d5
mov rcx, qword [rsp + 0x78]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x60], rax
jmp 0x18003eea6
mov rax, qword [rsp + 0x68]
add rax, 0x6966c524
mov word [rsp + 0x28], ax
movzx eax, byte [rsp + 0x21]
mov rcx, qword [0x1800c3668]
xor rax, rcx
mov rcx, qword [rsp + 0x90]
not rcx
mov rdx, qword [rsp + 0x60]
add rdx, rcx
mov rcx, rdx
sub rax, rcx
not rax
mov qword [0x1800c36b8], rax
jmp 0x18003eea6
movzx eax, byte [rsp + 0x20]
not eax
movzx ecx, byte [rsp + 0x21]
imul eax, ecx
movzx ecx, byte [rsp + 0x22]
movzx ecx, cl
imul eax, ecx
cdqe
mov qword [0x1800c3680], rax
mov eax, dword [rsp + 0xdc]
xor eax, 0x19b
mov ecx, dword [rsp + 0xdc]
mov edx, dword [rsp + 0xdc]
sub ecx, edx
imul eax, ecx
mov ecx, dword [rsp + 0x1b0]
sub ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x198]
lea rax, [rcx + rax*2 + 4]
mov qword [rsp + 0x270], rax
mov rax, qword [rsp + 0x270]
mov eax, dword [rax + 8]
mov rcx, qword [rsp + 0x380]
add rcx, rax
mov rax, rcx
mov r8, qword [rsp + 0x390]
mov rdx, rax
mov rcx, qword [rsp + 0x380]
call fcn.18003cf30
jmp 0x18003ef32
mov rax, qword [rsp + 0x390]
mov eax, dword [rax]
add rsp, 0x368
pop rdi
pop rsi
ret