Function at 0x180051070
Capabilities:
Encrypt data using speck
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, 0x488
movzx eax, word [0x1800e359c]
mov word [rsp + 0x280], ax
mov eax, dword [0x1800e35f4]
mov dword [rsp + 0x68], eax
mov eax, 0x5526
mov word [rsp + 0x3c], ax
movzx eax, byte [0x1800e360c]
mov byte [rsp + 0x20], al
movsx eax, word [0x1800e35b4]
mov dword [rsp + 0x58], eax
movzx eax, byte [0x1800e3582]
mov word [rsp + 0x38], ax
mov dword [rsp + 0x60], 0x126c
mov eax, dword [0x1800e3598]
mov dword [rsp + 0x7c], eax
mov eax, dword [0x1800e3584]
mov byte [rsp + 0x21], al
mov dword [rsp + 0x78], 0x2b8887a6
movsx eax, byte [0x1800e3513]
mov dword [rsp + 0x80], eax
mov rax, qword [0x1800e35a0]
mov word [rsp + 0x2c], ax
movzx eax, word [0x1800e35d0]
mov word [rsp + 0x24], ax
mov eax, dword [0x1800e35d4]
mov dword [rsp + 0x70], eax
mov rax, qword [0x1800e35a0]
mov qword [rsp + 0x88], rax
movzx eax, byte [0x1800e3567]
mov word [rsp + 0x30], ax
movsx eax, byte [0x1800e3533]
mov dword [rsp + 0x44], eax
mov eax, dword [0x1800e3514]
mov dword [rsp + 0x74], eax
movzx eax, byte [0x1800e355e]
movsx ax, al
mov word [rsp + 0x34], ax
mov dword [rsp + 0x5c], 0xca53865c
movzx eax, byte [0x1800e3562]
movsx ax, al
mov word [rsp + 0x28], ax
mov dword [rsp + 0x64], 0xb7
movsx eax, byte [0x1800e3563]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x2fc], 0x2e
mov qword [rsp + 0x340], 0xe1
mov eax, 0xfffff6bd
mov word [rsp + 0x218], ax
mov byte [rsp + 0xac], 0xae
mov eax, dword [0x1800e35f4]
cdqe
mov qword [rsp + 0x348], rax
mov dword [rsp + 0x304], 6
mov byte [rsp + 0xad], 0xa5
mov byte [rsp + 0xae], 0x5b
movzx eax, byte [0x1800e35ac]
mov byte [rsp + 0xaf], al
mov rax, qword [0x1800e35d8]
mov dword [rsp + 0x300], eax
movzx eax, byte [0x1800e3532]
movzx eax, al
mov qword [rsp + 0x350], rax
mov eax, dword [0x1800e35f4]
mov byte [rsp + 0xc0], al
movsx rax, word [0x1800e3560]
mov qword [rsp + 0x358], rax
movsx eax, byte [0x1800e3513]
mov dword [rsp + 0x308], eax
mov eax, dword [0x1800e3584]
mov dword [rsp + 0x30c], eax
movsx rax, byte [0x1800e34eb]
mov qword [rsp + 0x360], rax
mov dword [rsp + 0x310], 0xc9878255
movzx eax, word [0x1800e3614]
mov qword [rsp + 0x368], rax
movabs rax, 0xd62502b42897a
mov qword [rsp + 0x370], rax
movabs rax, 0xb3ff57863d533
mov qword [rsp + 0x378], rax
movzx eax, word [str.Bw8_]
mov word [rsp + 0x21c], ax
movzx eax, byte [0x1800e355e]
movsx eax, al
mov dword [rsp + 0x314], eax
mov dword [rsp + 0x318], 0x73
mov eax, 0xffff8602
mov word [rsp + 0x27c], ax
movzx eax, byte [0x1800e3562]
movsx rax, al
mov qword [rsp + 0x380], rax
mov eax, 0xd7d8
mov word [rsp + 0x278], ax
mov byte [rsp + 0xb0], 0x28
mov eax, dword [0x18094ab58]
mov dword [rsp + 0xc4], eax
mov eax, dword [rsp + 0xc4]
add eax, 0x90
mov dword [rsp + 0x188], eax
mov dword [rsp + 0x44], 4
mov eax, dword [rsp + 0x58]
add eax, 0x91a54c0e
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x98], eax
cmp dword [rsp + 0x98], 0
je 0x18005137a
cmp dword [rsp + 0x98], 1
je 0x18005138d
cmp dword [rsp + 0x98], 2
je 0x18005141d
cmp dword [rsp + 0x98], 3
je 0x180051451
cmp dword [rsp + 0x98], 4
je 0x18005147a
jmp 0x1800514c5
movsx eax, byte [0x1800e3563]
sar eax, 4
mov dword [rsp + 0x48], eax
jmp 0x1800514c5
cmp dword [rsp + 0x44], 0
jne 0x1800513a1
mov dword [rsp + 0x110], 1
jmp 0x1800513ac
mov dword [rsp + 0x110], 0
movzx eax, word [0x1800e3564]
cwde
mov ecx, dword [rsp + 0x5c]
sub eax, ecx
mov ecx, dword [rsp + 0x78]
add ecx, eax
mov eax, ecx
mov eax, eax
mov rcx, qword [0x1800e3568]
imul rcx, rcx, 0x1146
mov edx, dword [rsp + 0x110]
xor edx, 0xdb80
movsxd rdx, edx
add rcx, rdx
not rcx
add rax, rcx
test rax, rax
jne 0x1800513ff
mov eax, 1
mov word [rsp + 0x96], ax
jmp 0x180051409
xor eax, eax
mov word [rsp + 0x96], ax
movzx eax, word [rsp + 0x96]
mov word [0x1800e3564], ax
jmp 0x1800514c5
mov eax, dword [0x1800e3504]
cdqe
mov rcx, qword [0x1800e35f8]
sub rcx, rax
mov rax, rcx
mov qword [0x1800e35f8], rax
movzx eax, byte [0x1800e3567]
movsx ecx, word [0x1800e360c]
add eax, ecx
mov byte [0x1800e3567], al
jmp 0x1800514c5
mov qword [0x1800e35c8], 1
mov eax, dword [rsp + 0x80]
mov ecx, dword [rsp + 0x44]
imul ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x44]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x44], eax
jmp 0x1800514c5
movzx eax, byte [0x1800e355f]
movzx ecx, word [rsp + 0x28]
movsx ecx, cx
add eax, ecx
not eax
movzx ecx, byte [0x1800e3562]
movsx ecx, cl
mov edx, dword [0x1800e3534]
sub ecx, edx
sub eax, ecx
mov eax, eax
mov ecx, dword [rsp + 0x74]
mov ecx, ecx
mov rdx, qword [rsp + 0x88]
add rcx, rdx
movzx edx, byte [0x1800e3567]
sub rcx, rdx
and rax, rcx
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0xc4]
add eax, 0x120
mov dword [rsp + 0x228], eax
mov eax, dword [0x1800e3584]
mov eax, eax
mov rcx, qword [0x1800e35d8]
imul rcx, rax
mov rax, rcx
mov dword [0x1800e35c0], eax
mov eax, dword [rsp + 0xc4]
add eax, 0xdf
mov dword [rsp + 0x22c], eax
mov eax, dword [0x1800e3534]
test eax, eax
je 0x18005164e
mov dword [rsp + 0x58], 1
cmp dword [rsp + 0x60], 0
jne 0x180051531
mov dword [rsp + 0x114], 1
jmp 0x18005153c
mov dword [rsp + 0x114], 0
mov eax, dword [0x1800e35f0]
test eax, eax
jne 0x180051553
mov dword [rsp + 0x118], 1
jmp 0x18005155e
mov dword [rsp + 0x118], 0
mov eax, dword [rsp + 0x114]
mov ecx, dword [str.Bw8_]
sub ecx, eax
mov eax, ecx
sub eax, dword [rsp + 0x118]
cdqe
movzx ecx, byte [rsp + 0x20]
mov rdx, qword [0x1800e3568]
not rdx
imul rcx, rdx
sub rax, rcx
mov dword [0x1800e3598], eax
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x11c], eax
cmp dword [rsp + 0x11c], 0
je 0x1800515b8
cmp dword [rsp + 0x11c], 1
je 0x1800515fe
jmp 0x18005164c
movzx eax, word [rsp + 0x38]
mov rcx, qword [0x1800e3590]
and rcx, rax
mov rax, rcx
mov ecx, dword [rsp + 0x74]
mov ecx, ecx
sub rcx, qword [0x1800e35b8]
sub rax, rcx
mov dword [rsp + 0x80], eax
mov rax, qword [0x1800e3568]
mov rcx, qword [0x1800e3578]
add rcx, rax
mov rax, rcx
mov qword [0x1800e3578], rax
jmp 0x18005164c
movsx eax, word [0x1800e360c]
movsx ecx, word [0x1800e3560]
add eax, ecx
movsx ecx, word [0x1800e360c]
xor ecx, eax
mov eax, ecx
mov word [0x1800e360c], ax
mov eax, 2
imul rax, rax, 0x89
lea rcx, [0x1809db1c0]
movsx eax, word [rcx + rax]
movzx ecx, word [0x1800e35c4]
movsx ecx, cx
sub ecx, eax
mov eax, ecx
mov word [0x1800e35c4], ax
jmp 0x1800516a6
movzx eax, byte [rsp + 0x20]
test eax, eax
jne 0x180051664
mov dword [rsp + 0x120], 1
jmp 0x18005166f
mov dword [rsp + 0x120], 0
mov eax, dword [rsp + 0x48]
not eax
cmp eax, dword [rsp + 0x120]
jg 0x1800516a6
mov eax, dword [rsp + 0x44]
inc eax
mov dword [rsp + 0x44], eax
movzx eax, word [0x1800e3580]
mov ecx, 2
imul rcx, rcx, 0x62d
lea rdx, [0x180abe590]
mov word [rdx + rcx], ax
mov eax, dword [0x18094ab58]
mov dword [rsp + 0xc8], eax
lea rax, [rsp + 0x388]
lea rcx, str.DiscoverLoginUri
mov rdi, rax
mov rsi, rcx
mov ecx, 0x22
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x388]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov word [0x1800e35d0], ax
mov eax, dword [rsp + 0xc8]
add eax, 0x6191
mov dword [rsp + 0x274], eax
movzx eax, byte [0x1800e355e]
movsx eax, al
cmp dword [rsp + 0x60], eax
jne 0x180051714
mov dword [rsp + 0x128], 1
jmp 0x18005171f
mov dword [rsp + 0x128], 0
cmp dword [rsp + 0x60], 0x31
jne 0x180051733
mov dword [rsp + 0x124], 1
jmp 0x18005173e
mov dword [rsp + 0x124], 0
mov eax, dword [rsp + 0x124]
cmp dword [rsp + 0x128], eax
jge 0x1800518e1
mov byte [0x1800e3582], 4
movsx eax, byte [rsp + 0x21]
add eax, 0x56bd
mov byte [0x1800e3567], al
movzx eax, byte [0x1800e3582]
mov byte [rsp + 0x9c], al
cmp byte [rsp + 0x9c], 0
je 0x1800517ba
cmp byte [rsp + 0x9c], 1
je 0x1800517f7
cmp byte [rsp + 0x9c], 2
je 0x180051881
cmp byte [rsp + 0x9c], 3
je 0x18005189e
cmp byte [rsp + 0x9c], 4
je 0x1800518cd
jmp 0x1800518df
movzx eax, byte [0x1800e3567]
dec al
mov byte [0x1800e3567], al
mov eax, dword [rsp + 0x78]
cdqe
mov rcx, qword [0x1800e3568]
xor rax, rcx
not rax
movzx ecx, byte [rsp + 0x20]
mov rdx, qword [0x1800e35a0]
add rcx, rdx
add rax, rcx
mov dword [rsp + 0x5c], eax
jmp 0x1800518df
mov eax, dword [0x1800e35b0]
not eax
mov ecx, dword [rsp + 0x80]
add eax, ecx
movzx ecx, word [rsp + 0x3c]
movsx ecx, cx
mov edx, dword [rsp + 0x60]
sub edx, ecx
mov ecx, edx
not ecx
imul eax, ecx
not eax
mov eax, eax
movzx ecx, word [rsp + 0x24]
movsx rcx, cx
or rcx, qword [0x1800e3578]
movzx edx, word [rsp + 0x28]
movsx edx, dx
movzx edi, byte [0x1800e3582]
imul edx, edi
movsxd rdx, edx
sub rcx, rdx
add rax, rcx
test rax, rax
jne 0x180051860
mov eax, 1
mov word [rsp + 0x94], ax
jmp 0x18005186a
xor eax, eax
mov word [rsp + 0x94], ax
movzx eax, word [rsp + 0x94]
mov word [rsp + 0x28], ax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x7c], eax
jmp 0x1800518df
mov eax, dword [rsp + 0x48]
cdqe
add rax, qword [0x1800e35c8]
mov dword [rsp + 0x48], eax
mov eax, dword [0x18094ab58]
mov dword [rsp + 0x60], eax
jmp 0x1800518df
mov eax, dword [rsp + 0x7c]
mov eax, eax
movabs rcx, 0x58b1c6bc73825
add rax, rcx
mov byte [0x1800e355e], al
movzx eax, word [rsp + 0x24]
cwde
add eax, 0x4b64
cdqe
mov qword [0x1800e3568], rax
jmp 0x1800518df
mov dword [rsp + 0x5c], 0x4844
mov dword [0x1800e3608], 0x471bc939
jmp 0x180051905
cmp dword [0x1800e35ac], 0
jne 0x1800518f4
mov eax, dword [0x1800e358c]
test eax, eax
jne 0x180051905
mov eax, dword [rsp + 0x5c]
mov ecx, dword [0x1800e35f0]
imul eax, ecx
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0xc8]
add eax, 0x89
mov dword [rsp + 0x31c], eax
mov eax, dword [rsp + 0xc8]
add eax, 0x289c
mov dword [rsp + 0x220], eax
movzx eax, word [rsp + 0x3c]
cwde
mov ecx, dword [rsp + 0x48]
cmp eax, ecx
jle 0x180051946
mov dword [rsp + 0x130], 1
jmp 0x180051951
mov dword [rsp + 0x130], 0
movzx eax, word [rsp + 0x3c]
cwde
cmp eax, 6
jle 0x180051969
mov dword [rsp + 0x12c], 1
jmp 0x180051974
mov dword [rsp + 0x12c], 0
mov eax, dword [rsp + 0x12c]
cmp dword [rsp + 0x130], eax
jne 0x180051986
jmp 0x1800519a6
mov eax, dword [rsp + 0x68]
movzx ecx, word [rsp + 0x34]
movsx ecx, cx
lea eax, [rcx + rax - 0x98]
mov word [rsp + 0x34], ax
mov dword [rsp + 0x64], 4
mov eax, 4
mov word [0x1800e35a8], ax
movzx eax, byte [rsp + 0x20]
add eax, 0xef99542a
mov byte [0x1800e3567], al
movzx eax, word [rsp + 0x34]
cwde
mov dword [0x1800e35d4], eax
movzx eax, word [0x1800e35a8]
movzx eax, ax
mov dword [rsp + 0xa0], eax
cmp dword [rsp + 0xa0], 0
je 0x180051a16
cmp dword [rsp + 0xa0], 1
je 0x180051a22
cmp dword [rsp + 0xa0], 2
je 0x180051a40
cmp dword [rsp + 0xa0], 3
je 0x180051a4f
cmp dword [rsp + 0xa0], 4
je 0x180051a60
jmp 0x180051aaa
mov byte [0x1800e3566], 0xd3
jmp 0x180051aaa
mov rax, qword [0x1800e35d8]
movabs rcx, 0x33a1ff69eaf6
imul rax, rcx
mov qword [0x1800e35a0], rax
jmp 0x180051aaa
movzx eax, byte [0x18094ab58]
mov byte [0x1800e3566], al
jmp 0x180051aaa
mov eax, dword [rsp + 0x74]
sub eax, 0x60f3e84f
mov dword [0x1800e358c], eax
jmp 0x180051aaa
movzx eax, word [rsp + 0x3c]
cwde
mov ecx, dword [rsp + 0x58]
add ecx, eax
mov eax, ecx
movzx ecx, word [rsp + 0x34]
movsx ecx, cx
mov edx, dword [rsp + 0x64]
add edx, ecx
mov ecx, edx
add eax, ecx
cdqe
mov qword [0x1800e35c8], rax
movsx eax, byte [0x1800e34eb]
mov ecx, dword [0x1800e35d4]
imul eax, ecx
movsx ecx, byte [0x1800e34eb]
sub ecx, eax
mov eax, ecx
mov byte [0x1800e34eb], al
mov eax, dword [rsp + 0x274]
mov ecx, dword [rsp + 0x220]
imul eax, ecx
mov ecx, 0xf7a1c5c
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x230], eax
mov eax, dword [0x18094ab58]
mov dword [rsp + 0xcc], eax
mov eax, dword [rsp + 0xcc]
add eax, 0x376
mov dword [rsp + 0x238], eax
movzx eax, word [rsp + 0x3c]
cwde
test eax, eax
je 0x180051afa
jmp 0x180051c26
movzx eax, byte [0x1800e3566]
movzx eax, al
test eax, eax
je 0x180051b44
movzx eax, byte [rsp + 0x20]
mov ecx, dword [rsp + 0x78]
sub ecx, eax
mov eax, ecx
mov ecx, dword [0x1800e35b0]
not ecx
movsx edx, byte [0x1800e3533]
imul ecx, edx
add eax, ecx
mov word [rsp + 0x34], ax
mov rax, qword [rsp + 0x88]
not rax
mov byte [0x1800e3566], al
jmp 0x180051c26
mov eax, dword [0x1800e3504]
movzx ecx, word [rsp + 0x28]
movsx ecx, cx
cmp eax, ecx
jne 0x180051b63
mov dword [rsp + 0x138], 1
jmp 0x180051b6e
mov dword [rsp + 0x138], 0
cmp qword [0x1800e3578], 0
je 0x180051b93
movzx eax, word [0x1800e3580]
movzx eax, ax
test eax, eax
je 0x180051b93
mov dword [rsp + 0x134], 1
jmp 0x180051b9e
mov dword [rsp + 0x134], 0
mov eax, dword [rsp + 0x134]
mov ecx, dword [rsp + 0x138]
add ecx, eax
mov eax, ecx
test eax, eax
je 0x180051bdb
mov eax, dword [0x18094ab58]
mov dword [rsp + 0x74], eax
movzx eax, byte [0x1800e3562]
movsx eax, al
movzx ecx, word [rsp + 0x24]
movsx ecx, cx
imul eax, ecx
mov byte [0x1800e3562], al
jmp 0x180051c26
movzx eax, word [rsp + 0x2c]
movzx eax, ax
mov ecx, dword [rsp + 0x70]
cmp eax, ecx
jg 0x180051c04
movzx eax, word [rsp + 0x24]
cwde
not eax
test eax, eax
je 0x180051c04
mov dword [rsp + 0x13c], 1
jmp 0x180051c0f
mov dword [rsp + 0x13c], 0
mov eax, dword [rsp + 0x13c]
not eax
test eax, eax
je 0x180051c26
movzx eax, word [rsp + 0x3c]
cwde
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0xcc]
add eax, 0x224
mov dword [rsp + 0x190], eax
mov dword [rsp + 0x48], 0x7c
cmp dword [rsp + 0x44], 0
jne 0x180051c56
mov qword [rsp + 0x290], 1
jmp 0x180051c62
mov qword [rsp + 0x290], 0
mov rax, qword [0x1800e35d8]
xor rax, qword [rsp + 0x290]
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0xcc]
add eax, 0x38f
mov dword [rsp + 0x234], eax
mov eax, dword [0x18094ab58]
mov dword [rsp + 0xd0], eax
movzx eax, word [0x1800e35d0]
movsx rax, ax
movabs rcx, 0xd2df693bab02a
sub rax, rcx
mov dword [0x1800e35ac], eax
movzx eax, byte [rsp + 0x20]
test eax, eax
jne 0x180051ccd
mov dword [rsp + 0x140], 1
jmp 0x180051cd8
mov dword [rsp + 0x140], 0
movsx eax, byte [0x1800e34eb]
movsx ecx, word [0x1800e3560]
sub eax, ecx
movsx ecx, word [0x1800e3560]
mov edx, dword [rsp + 0x140]
sub edx, ecx
mov ecx, edx
not ecx
add eax, ecx
test eax, eax
jne 0x180051d0f
mov dword [rsp + 0x144], 1
jmp 0x180051d1a
mov dword [rsp + 0x144], 0
movzx eax, word [rsp + 0x2c]
movzx eax, ax
mov ecx, dword [rsp + 0x58]
or eax, ecx
sub eax, dword [rsp + 0x144]
cdqe
mov qword [0x1800e3570], rax
mov eax, dword [rsp + 0xd0]
add eax, 0x2e1
mov dword [rsp + 0x320], eax
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x68]
cmp eax, ecx
jae 0x180051de0
mov eax, dword [rsp + 0x64]
movzx ecx, byte [0x1800e3532]
movzx ecx, cl
cmp eax, ecx
je 0x180051d7a
mov dword [rsp + 0x14c], 1
jmp 0x180051d85
mov dword [rsp + 0x14c], 0
mov eax, dword [rsp + 0x64]
cmp eax, 9
je 0x180051d9b
mov dword [rsp + 0x148], 1
jmp 0x180051da6
mov dword [rsp + 0x148], 0
mov eax, dword [rsp + 0x148]
cmp dword [rsp + 0x14c], eax
jge 0x180051dde
mov dword [rsp + 0x48], 0xfeef23d9
movzx eax, byte [0x1800e355e]
movsx eax, al
mov ecx, 4
imul rcx, rcx, 0x4a01
lea rdx, [0x180a21b30]
mov dword [rdx + rcx], eax
jmp 0x180051df8
movsx eax, word [0x1800e35b4]
sub eax, 0xadd0d5a4
mov ecx, dword [rsp + 0x60]
and ecx, eax
mov eax, ecx
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0xd0]
add eax, 0x2e1
mov dword [rsp + 0x324], eax
mov eax, dword [rsp + 0xd0]
add eax, 0xc5
mov dword [rsp + 0x1d4], eax
mov eax, dword [0x1800e358c]
mov ecx, 2
imul rcx, rcx, 0x33
lea rdx, [0x180a4bcc0]
mov word [rdx + rcx], ax
mov eax, 0xd0ba
mov word [0x1800e3580], ax
mov dword [rsp + 0xd4], 0
movzx eax, word [rsp + 0x3c]
movsx rax, ax
movabs rcx, 0xcd02fca5841ec
add rax, rcx
mov dword [rsp + 0x48], eax
mov dword [rsp + 0xd8], 0
mov dword [rsp + 0x60], 4
movzx eax, word [0x1800e3614]
add eax, 0xa2b8e161
mov eax, eax
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x4a8]
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x108]
add rax, 4
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x88], 3
movzx eax, word [0x1800e3580]
movzx eax, ax
movzx ecx, word [rsp + 0x34]
movsx ecx, cx
sub eax, ecx
mov word [0x1800e3580], ax
movzx eax, word [rsp + 0x2c]
movzx eax, ax
and eax, 0x2b71c8d3
mov ecx, dword [rsp + 0x48]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x210], rax
cmp qword [rsp + 0x210], 0
je 0x180051f34
cmp qword [rsp + 0x210], 1
je 0x180051f51
cmp qword [rsp + 0x210], 2
je 0x180051f7d
cmp qword [rsp + 0x210], 3
je 0x180051fa9
jmp 0x180051fd7
movzx eax, word [0x1800e3580]
movzx eax, ax
sub rax, qword [0x1800e3590]
mov word [0x1800e3580], ax
jmp 0x180051fd7
mov eax, dword [rsp + 0x7c]
mov ecx, dword [rsp + 0x64]
imul eax, ecx
mov ecx, dword [rsp + 0x7c]
and ecx, eax
mov eax, ecx
mov dword [rsp + 0x7c], eax
movzx eax, word [rsp + 0x2c]
movzx eax, ax
sub eax, 0x1839
mov dword [0x1800e3504], eax
jmp 0x180051fd7
movzx eax, word [rsp + 0x30]
cwde
mov ecx, dword [0x1800e35f4]
add eax, ecx
movzx ecx, word [rsp + 0x30]
movsx ecx, cx
and ecx, eax
mov eax, ecx
mov word [rsp + 0x30], ax
movzx eax, byte [rsp + 0x21]
inc al
mov byte [rsp + 0x21], al
jmp 0x180051fd7
movsx eax, byte [0x1800e34eb]
mov ecx, dword [0x1800e3608]
add ecx, eax
mov eax, ecx
mov ecx, dword [0x1800e3608]
add ecx, eax
mov eax, ecx
mov dword [0x1800e3608], eax
mov eax, dword [0x18094ab58]
mov qword [0x1800e3568], rax
lea rax, [rsp + 0x3e0]
mov rdi, rax
xor eax, eax
mov ecx, 0x98
rep stosb byte [rdi], al
mov eax, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x74]
cmp eax, ecx
jne 0x180052004
mov dword [rsp + 0x154], 1
jmp 0x18005200f
mov dword [rsp + 0x154], 0
mov eax, dword [rsp + 0x68]
cmp eax, 0x5c
jne 0x180052025
mov dword [rsp + 0x150], 1
jmp 0x180052030
mov dword [rsp + 0x150], 0
mov eax, dword [rsp + 0x150]
cmp dword [rsp + 0x154], eax
jne 0x18005225c
movzx eax, word [rsp + 0x2c]
movzx eax, ax
movzx ecx, word [rsp + 0x28]
movsx ecx, cx
cmp eax, ecx
jl 0x180052065
mov dword [rsp + 0x15c], 1
jmp 0x180052070
mov dword [rsp + 0x15c], 0
movzx eax, word [rsp + 0x2c]
movzx eax, ax
cmp eax, 0x63
jl 0x18005208a
mov dword [rsp + 0x158], 1
jmp 0x180052095
mov dword [rsp + 0x158], 0
mov eax, dword [rsp + 0x158]
cmp dword [rsp + 0x15c], eax
jle 0x180052111
movzx eax, word [rsp + 0x3c]
cwde
mov ecx, dword [rsp + 0x5c]
not ecx
add eax, ecx
test eax, eax
jne 0x1800520c4
mov dword [rsp + 0x160], 1
jmp 0x1800520cf
mov dword [rsp + 0x160], 0
movzx eax, word [rsp + 0x34]
movsx rax, ax
mov rcx, qword [0x1800e3568]
add rcx, rax
mov rax, rcx
mov ecx, dword [0x1800e3504]
movsxd rcx, ecx
add rax, rcx
mov ecx, dword [0x1800e359c]
imul ecx, dword [rsp + 0x160]
movsxd rcx, ecx
add rax, rcx
not rax
mov byte [rsp + 0x20], al
jmp 0x18005225a
mov eax, dword [0x1800e3504]
test eax, eax
jne 0x180052129
mov qword [rsp + 0x298], 1
jmp 0x180052135
mov qword [rsp + 0x298], 0
mov rax, qword [0x1800e3570]
cmp qword [rsp + 0x298], rax
je 0x180052153
mov dword [rsp + 0x168], 1
jmp 0x18005215e
mov dword [rsp + 0x168], 0
mov rax, qword [0x1800e35a0]
cmp rax, 0x56290939
je 0x18005217a
mov dword [rsp + 0x164], 1
jmp 0x180052185
mov dword [rsp + 0x164], 0
mov eax, dword [rsp + 0x164]
cmp dword [rsp + 0x168], eax
jg 0x1800521c7
movsx rax, word [0x1800e3560]
movabs rcx, 0xda708612d5e4e
add rax, rcx
mov word [rsp + 0x28], ax
movsx eax, byte [0x1800e3563]
mov ecx, dword [rsp + 0x48]
sub eax, ecx
mov byte [0x1800e3563], al
jmp 0x18005225a
movzx eax, word [0x1800e35c4]
cwde
test eax, eax
je 0x18005222c
movzx eax, word [rsp + 0x28]
movsx rax, ax
mov rcx, qword [0x1800e3590]
sub rcx, rax
mov rax, rcx
movabs rcx, 0xd15ed68821aa9
add rax, rcx
mov ecx, dword [rsp + 0x74]
mov edx, 0x51
sub edx, ecx
mov ecx, edx
movsx edx, byte [rsp + 0x21]
mov edi, dword [rsp + 0x60]
sub edi, edx
mov edx, edi
add ecx, edx
mov ecx, ecx
xor rax, rcx
mov qword [0x1800e35f8], rax
movzx eax, word [0x18094ab58]
mov word [rsp + 0x2c], ax
jmp 0x18005225a
mov rax, qword [rsp + 0x88]
movsx rcx, byte [0x1800e34eb]
cmp rax, rcx
ja 0x18005225a
mov eax, dword [rsp + 0x78]
and eax, 0x155f6a77
mov ecx, dword [str.Bw8_]
sub ecx, eax
mov eax, ecx
mov dword [str.Bw8_], eax
jmp 0x180052266
mov eax, dword [0x18094ab58]
mov dword [rsp + 0x64], eax
mov dword [rsp + 0x90], 0
mov dword [rsp + 0x40], 0
mov rax, qword [rsp + 0x108]
movzx eax, byte [rax + 2]
mov dword [rsp + 0x224], eax
mov dword [rsp + 0xd4], 0
movzx eax, word [rsp + 0x38]
mov rcx, qword [0x1800e3600]
cmp rax, rcx
ja 0x1800522b5
mov dword [rsp + 0x170], 1
jmp 0x1800522c0
mov dword [rsp + 0x170], 0
movzx eax, word [rsp + 0x38]
cmp eax, 0x1a
jg 0x1800522d7
mov dword [rsp + 0x16c], 1
jmp 0x1800522e2
mov dword [rsp + 0x16c], 0
mov eax, dword [rsp + 0x16c]
cmp dword [rsp + 0x170], eax
je 0x18005235a
mov eax, dword [rsp + 0x5c]
movzx ecx, word [rsp + 0x2c]
movzx ecx, cx
cmp eax, ecx
je 0x18005230f
mov dword [rsp + 0x178], 1
jmp 0x18005231a
mov dword [rsp + 0x178], 0
mov eax, dword [rsp + 0x5c]
cmp eax, 0x5e
je 0x180052330
mov dword [rsp + 0x174], 1
jmp 0x18005233b
mov dword [rsp + 0x174], 0
mov eax, dword [rsp + 0x174]
cmp dword [rsp + 0x178], eax
jge 0x180052358
movzx eax, word [rsp + 0x24]
cwde
sub eax, 0x34
mov byte [rsp + 0x20], al
jmp 0x180052389
mov eax, dword [0x1800e3610]
cmp eax, dword [0x1800e35ac]
jne 0x180052389
mov rax, qword [rsp + 0x88]
sub rax, 0xf37b
mov byte [rsp + 0x20], al
mov eax, dword [rsp + 0x70]
add eax, 0xdd50c4df
mov byte [0x1800e3563], al
mov rax, qword [rsp + 0x4b0]
mov dword [rax], 0
mov rax, qword [rsp + 0x4b0]
mov eax, dword [rax]
mov dword [rsp + 0xd8], eax
mov r8d, 0x98
xor edx, edx
lea rcx, [rsp + 0x3e0]
call fcn.18004adf0
mov rax, qword [0x1800e35c8]
cmp qword [0x1800e35e8], rax
ja 0x1800523dc
movzx eax, word [rsp + 0x3c]
cwde
shl eax, 2
mov byte [0x1800e34eb], al
mov eax, dword [rsp + 0x224]
cmp dword [rsp + 0x40], eax
jae 0x180052937
mov eax, dword [rsp + 0x80]
test eax, eax
je 0x180052500
mov eax, dword [rsp + 0x58]
movzx ecx, byte [0x1800e3562]
movsx ecx, cl
mov edx, dword [0x1800e359c]
add edx, ecx
mov ecx, edx
cmp eax, ecx
jge 0x180052425
mov dword [rsp + 0x17c], 1
jmp 0x180052430
mov dword [rsp + 0x17c], 0
mov eax, dword [rsp + 0x17c]
not eax
test eax, eax
je 0x180052450
mov eax, dword [rsp + 0x58]
sub eax, 0x6875
mov word [rsp + 0x30], ax
jmp 0x180052500
movsx eax, word [0x1800e360c]
test eax, eax
je 0x180052493
movsx eax, byte [rsp + 0x21]
test eax, eax
je 0x180052475
mov rax, qword [0x1800e35e0]
mov qword [rsp + 0x2a0], rax
jmp 0x180052486
movzx eax, word [rsp + 0x34]
movsx rax, ax
mov qword [rsp + 0x2a0], rax
mov eax, dword [rsp + 0x2a0]
mov dword [rsp + 0x7c], eax
jmp 0x180052500
movzx eax, byte [rsp + 0x20]
test eax, eax
je 0x180052500
mov rax, qword [0x1800e35e0]
sub rax, 0x6bfac7e2
movsx rcx, word [0x1800e35b4]
sub rcx, rax
mov rax, rcx
mov word [0x1800e35b4], ax
movzx eax, byte [0x1800e3582]
movzx ecx, word [rsp + 0x24]
movsx ecx, cx
sub eax, ecx
test eax, eax
jne 0x1800524e0
mov dword [rsp + 0x180], 1
jmp 0x1800524eb
mov dword [rsp + 0x180], 0
movzx eax, word [rsp + 0x38]
sub eax, dword [rsp + 0x180]
cdqe
mov qword [0x1800e3578], rax
mov eax, 1
mov word [rsp + 0x30], ax
movsxd rax, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x88]
add rax, rcx
movsxd rcx, dword [rsp + 0x44]
add rcx, rax
mov rax, rcx
mov dword [rsp + 0x44], eax
movzx eax, word [rsp + 0x30]
cwde
mov dword [rsp + 0x184], eax
cmp dword [rsp + 0x184], 0
je 0x18005254c
cmp dword [rsp + 0x184], 1
je 0x180052561
jmp 0x180052581
mov eax, 0xffffb049
mov word [0x1800e35c4], ax
mov byte [0x1800e3567], 0xa5
jmp 0x180052581
movzx eax, word [rsp + 0x38]
sub eax, 0x96
cdqe
mov rcx, qword [0x1800e35f8]
sub rcx, rax
mov rax, rcx
mov qword [0x1800e35f8], rax
mov eax, dword [rsp + 0x188]
mov ecx, dword [rsp + 0x188]
xor eax, ecx
mov ecx, dword [rsp + 0x228]
mov edx, dword [rsp + 0x22c]
sub ecx, edx
imul eax, ecx
mov ecx, dword [rsp + 0x230]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x90], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 1]
and al, 0xf
movzx eax, al
mov dword [rsp + 0x18c], eax
cmp dword [rsp + 0x18c], 0xa
ja case.0x1800525f2.3
movsxd rax, dword [rsp + 0x18c]
lea rcx, [0x180000000]
mov eax, dword [rcx + rax*4 + 0x53d5c]
add rax, rcx
jmp rax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
cmp eax, 4
jne 0x180052611
xor eax, eax
jmp 0x180053d4f
mov rax, qword [rsp + 0x4b0]
mov eax, dword [rax]
add eax, 8
mov rcx, qword [rsp + 0x4b0]
mov dword [rcx], eax
jmp case.0x1800525f2.3
mov rax, qword [rsp + 0x50]
add rax, 2
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x50]
movzx eax, word [rax]
mov dword [rsp + 0x90], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
test eax, eax
jne 0x18005267c
mov eax, dword [rsp + 0x90]
shl eax, 3
mov dword [rsp + 0x90], eax
jmp 0x1800526b1
mov rax, qword [rsp + 0x50]
add rax, 2
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x50]
movzx eax, word [rax]
shl eax, 0x10
mov ecx, dword [rsp + 0x90]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x90], eax
mov rax, qword [rsp + 0x4b0]
mov eax, dword [rax]
add eax, dword [rsp + 0x90]
mov rcx, qword [rsp + 0x4b0]
mov dword [rcx], eax
jmp case.0x1800525f2.3
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
mov rcx, qword [rsp + 0x4b0]
mov ecx, dword [rcx]
lea eax, [rcx + rax*8 + 8]
mov rcx, qword [rsp + 0x4b0]
mov dword [rcx], eax
jmp case.0x1800525f2.3
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
cmp eax, 4
jne 0x180052723
xor eax, eax
jmp 0x180053d4f
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 2]
mov rcx, qword [rsp + 0x4b0]
mov ecx, dword [rcx]
lea eax, [rcx + rax*8]
mov rcx, qword [rsp + 0x50]
movzx ecx, byte [rcx + 1]
shr cl, 4
and cl, 0xf
movzx ecx, cl
mov dword [rsp + rcx*4 + 0x3e0], eax
mov rax, qword [rsp + 0x50]
add rax, 2
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
mov eax, dword [rsp + rax*4 + 0x3e0]
mov dword [rsp + 0xd4], eax
mov rax, qword [rsp + 0x4b0]
mov ecx, dword [rsp + 0xd8]
mov dword [rax], ecx
jmp case.0x1800525f2.3
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
cmp eax, 4
jne 0x1800527bc
xor eax, eax
jmp 0x180053d4f
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 2]
mov rcx, qword [rsp + 0x4b0]
add eax, dword [rcx]
mov rcx, qword [rsp + 0x50]
movzx ecx, byte [rcx + 1]
shr cl, 4
and cl, 0xf
movzx ecx, cl
mov dword [rsp + rcx*4 + 0x3e0], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
mov rcx, qword [rsp + 0x50]
movzx ecx, word [rcx + 4]
shl ecx, 0x10
add ecx, dword [rsp + rax*4 + 0x3e0]
mov eax, ecx
mov rcx, qword [rsp + 0x50]
movzx ecx, byte [rcx + 1]
shr cl, 4
and cl, 0xf
movzx ecx, cl
mov dword [rsp + rcx*4 + 0x3e0], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
mov eax, dword [rsp + rax*4 + 0x3e0]
mov dword [rsp + 0xd4], eax
mov rax, qword [rsp + 0x4b0]
mov ecx, dword [rsp + 0xd8]
mov dword [rax], ecx
mov rax, qword [rsp + 0x50]
add rax, 4
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 2
mov dword [rsp + 0x40], eax
jmp case.0x1800525f2.3
mov rax, qword [rsp + 0x50]
add rax, 2
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
jmp case.0x1800525f2.3
mov rax, qword [rsp + 0x50]
add rax, 4
mov qword [rsp + 0x50], rax
mov eax, dword [rsp + 0x40]
add eax, 2
mov dword [rsp + 0x40], eax
jmp case.0x1800525f2.3
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 1]
shr al, 4
and al, 0xf
movzx eax, al
test eax, eax
jne 0x1800528d5
mov rax, qword [rsp + 0x4b0]
mov eax, dword [rax]
add eax, 0x40
mov rcx, qword [rsp + 0x4b0]
mov dword [rcx], eax
jmp case.0x1800525f2.3
mov rax, qword [rsp + 0x4b0]
mov eax, dword [rax]
add eax, 0x48
mov rcx, qword [rsp + 0x4b0]
mov dword [rcx], eax
mov rax, qword [rsp + 0x50]
add rax, 2
mov qword [rsp + 0x50], rax
movzx eax, word [rsp + 0x24]
movsx rax, ax
mov rcx, qword [0x1800e3570]
cmp rax, rcx
jb 0x180052922
movsx eax, byte [0x1800e34eb]
movzx ecx, word [rsp + 0x34]
movsx ecx, cx
cmp eax, ecx
jge 0x180052928
movzx eax, word [rsp + 0x28]
cwde
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
jmp 0x1800523dc
mov eax, dword [rsp + 0x234]
mov ecx, dword [rsp + 0x238]
mov edx, dword [rsp + 0x190]
or ecx, edx
mov edx, dword [rsp + 0x190]
sub edx, ecx
mov ecx, edx
cmp eax, ecx
je 0x180053d45
movzx eax, byte [0x1800e355e]
movsx eax, al
cmp eax, dword [0x1800e35c0]
jge 0x180052980
mov dword [rsp + 0x198], 1
jmp 0x18005298b
mov dword [rsp + 0x198], 0
movzx eax, byte [0x1800e355e]
movsx eax, al
cmp eax, 0x63
jge 0x1800529a7
mov dword [rsp + 0x194], 1
jmp 0x1800529b2
mov dword [rsp + 0x194], 0
mov eax, dword [rsp + 0x194]
cmp dword [rsp + 0x198], eax
jle 0x1800529d1
movzx eax, word [rsp + 0x24]
dec ax
mov word [rsp + 0x24], ax
jmp 0x180052a50
movzx eax, word [rsp + 0x24]
cwde
test eax, eax
jne 0x180052a50
xor eax, eax
cmp eax, 0x3cb4
je 0x180052a50
movzx eax, word [0x18094ab58]
mov word [rsp + 0x34], ax
movzx eax, word [0x1800e3580]
movzx eax, ax
mov ecx, dword [rsp + 0x78]
xor ecx, eax
mov eax, ecx
test eax, eax
jne 0x180052a14
mov qword [rsp + 0x2a8], 1
jmp 0x180052a20
mov qword [rsp + 0x2a8], 0
movsx eax, byte [0x1800e34eb]
mov ecx, dword [0x1800e35d4]
imul ecx, eax
mov eax, ecx
mov eax, eax
mov rcx, qword [0x1800e35c8]
and rcx, rax
mov rax, rcx
xor rax, qword [rsp + 0x2a8]
mov qword [0x1800e35f8], rax
mov rax, qword [rsp + 0x108]
movzx eax, byte [rax]
shr al, 3
and al, 0x1f
movzx eax, al
sar eax, 2
and eax, 1
test eax, eax
je 0x180053d45
movzx eax, byte [rsp + 0x20]
mov ecx, dword [rsp + 0x74]
cmp eax, ecx
jae 0x180052a80
jmp 0x180052ad3
movzx eax, byte [0x1800e355e]
movsx eax, al
test eax, eax
jne 0x180052a9b
mov dword [rsp + 0x19c], 1
jmp 0x180052aa6
mov dword [rsp + 0x19c], 0
mov eax, dword [0x1800e3598]
mov ecx, dword [rsp + 0x19c]
or ecx, eax
mov eax, ecx
test eax, eax
jne 0x180052ad3
movzx eax, byte [0x1800e3566]
movzx eax, al
sub eax, 0xe4
cdqe
mov qword [0x1800e35a0], rax
mov eax, dword [rsp + 0x70]
test eax, eax
je 0x180052add
jmp 0x180052aed
xor eax, eax
test eax, eax
je 0x180052aed
mov eax, dword [0x18094ab58]
mov dword [rsp + 0x5c], eax
mov eax, dword [0x18094ab58]
mov dword [rsp + 0xdc], eax
mov eax, dword [rsp + 0xdc]
add eax, 0x1a7
mov dword [rsp + 0x24c], eax
mov eax, dword [rsp + 0x5c]
dec eax
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0xdc]
add eax, 0x3a0
mov dword [rsp + 0x248], eax
mov eax, dword [rsp + 0xdc]
add eax, 0x3e4
mov dword [rsp + 0x1e8], eax
movzx eax, word [rsp + 0x24]
cwde
movzx ecx, word [rsp + 0x28]
movsx ecx, cx
cmp eax, ecx
jle 0x180052b72
movzx eax, word [rsp + 0x2c]
movzx eax, ax
mov ecx, dword [0x1800e3584]
xor eax, ecx
movzx ecx, word [rsp + 0x2c]
movzx ecx, cx
sub ecx, eax
mov eax, ecx
mov word [rsp + 0x2c], ax
jmp 0x180052ba4
cmp dword [rsp + 0x44], 0
je 0x180052ba4
movzx eax, word [rsp + 0x38]
movzx ecx, word [rsp + 0x38]
not ecx
sub eax, ecx
cdqe
mov qword [rsp + 0x88], rax
movsx eax, byte [rsp + 0x21]
movzx ecx, word [rsp + 0x24]
movsx ecx, cx
xor eax, ecx
mov byte [rsp + 0x21], al
mov eax, dword [0x18094ab58]
mov dword [rsp + 0xe0], eax
mov eax, dword [rsp + 0x74]
mov ecx, dword [rsp + 0x68]
not ecx
cmp eax, ecx
jne 0x180052bcc
mov dword [rsp + 0x1a8], 1
jmp 0x180052bd7
mov dword [rsp + 0x1a8], 0
mov rax, qword [0x1800e3570]
not rax
movzx ecx, word [0x1800e35a8]
movzx ecx, cx
cmp rax, rcx
je 0x180052bfd
mov dword [rsp + 0x1a0], 1
jmp 0x180052c08
mov dword [rsp + 0x1a0], 0
mov eax, dword [0x1800e3514]
cmp dword [rsp + 0x1a0], eax
jg 0x180052c24
mov dword [rsp + 0x1a4], 1
jmp 0x180052c2f
mov dword [rsp + 0x1a4], 0
mov eax, dword [rsp + 0x1a4]
cmp dword [rsp + 0x1a8], eax
jge 0x180052c59
movsxd rax, dword [0x1800e35c0]
movabs rcx, 0x1cb7ef9e134bb
add rax, rcx
mov dword [rsp + 0x44], eax
jmp 0x180052c7c
mov eax, dword [rsp + 0x48]
add eax, 0x2b1411bb
test eax, eax
je 0x180052c7c
movzx eax, byte [0x18094ab58]
mov byte [rsp + 0x20], al
movzx eax, byte [rsp + 0x20]
mov dword [0x1800e35f0], eax
mov eax, dword [rsp + 0xe0]
add eax, 0x21a
mov dword [rsp + 0xa8], eax
mov eax, 4
mov word [rsp + 0x2c], ax
mov eax, 0xffff9c55
mov word [rsp + 0x34], ax
movzx eax, word [rsp + 0x2c]
movzx eax, ax
mov dword [rsp + 0xa4], eax
cmp dword [rsp + 0xa4], 0
je 0x180052cf9
cmp dword [rsp + 0xa4], 1
je 0x180052d83
cmp dword [rsp + 0xa4], 2
je 0x180052dac
cmp dword [rsp + 0xa4], 3
je 0x180052dc1
cmp dword [rsp + 0xa4], 4
je 0x180052dcd
jmp 0x180052de3
movzx eax, word [rsp + 0x30]
cwde
movsx ecx, word [0x1800e3560]
sub eax, ecx
test eax, eax
jne 0x180052d1a
mov qword [rsp + 0x2b0], 1
jmp 0x180052d26
mov qword [rsp + 0x2b0], 0
movabs rax, 0x3dc9e88080dcd89c
sub rax, qword [rsp + 0x2b0]
test rax, rax
jne 0x180052d4a
mov dword [rsp + 0x1ac], 1
jmp 0x180052d55
mov dword [rsp + 0x1ac], 0
mov eax, dword [rsp + 0x1ac]
mov dword [0x1800e3608], eax
mov eax, dword [rsp + 0x58]
mov ecx, dword [0x1800e35c0]
imul ecx, eax
mov eax, ecx
mov ecx, dword [0x1800e35c0]
xor ecx, eax
mov eax, ecx
mov dword [0x1800e35c0], eax
jmp 0x180052de3
movzx eax, word [0x1800e35a8]
movzx eax, ax
add eax, 0xba
mov byte [rsp + 0x21], al
mov rax, qword [rsp + 0x88]
sub rax, 0x523b
mov byte [0x1800e3582], al
jmp 0x180052de3
movsx eax, byte [0x1800e3563]
mov ecx, dword [rsp + 0x64]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x64], eax
jmp 0x180052de3
mov eax, dword [rsp + 0x64]
dec eax
mov dword [rsp + 0x64], eax
jmp 0x180052de3
movzx eax, word [rsp + 0x30]
cwde
movzx ecx, word [0x1800e35d0]
movsx ecx, cx
add eax, ecx
mov dword [rsp + 0x74], eax
mov eax, dword [rsp + 0xe0]
add eax, 0x1e3
mov dword [rsp + 0x328], eax
mov eax, dword [0x1800e3504]
movzx ecx, word [0x1800e3564]
movsx ecx, cx
cmp eax, ecx
jl 0x180052e17
mov dword [rsp + 0x1b4], 1
jmp 0x180052e22
mov dword [rsp + 0x1b4], 0
mov eax, dword [0x1800e3504]
cmp eax, 0x49
jl 0x180052e3a
mov dword [rsp + 0x1b0], 1
jmp 0x180052e45
mov dword [rsp + 0x1b0], 0
mov eax, dword [rsp + 0x1b0]
cmp dword [rsp + 0x1b4], eax
jge 0x180052f16
mov eax, dword [0x1800e3610]
cmp eax, dword [0x1800e35ac]
jb 0x180052e74
mov dword [rsp + 0x1bc], 1
jmp 0x180052e7f
mov dword [rsp + 0x1bc], 0
mov eax, dword [0x1800e3610]
cmp eax, 0x5c
jl 0x180052e97
mov dword [rsp + 0x1b8], 1
jmp 0x180052ea2
mov dword [rsp + 0x1b8], 0
mov eax, dword [rsp + 0x1b8]
cmp dword [rsp + 0x1bc], eax
jge 0x180052eec
movzx eax, byte [0x1800e3567]
imul eax, eax, 0x707c351f
mov dword [rsp + 0x78], eax
mov eax, dword [0x1800e3584]
mov eax, eax
mov rcx, qword [rsp + 0x88]
sub rax, rcx
mov ecx, dword [0x1800e3584]
mov ecx, ecx
add rcx, rax
mov rax, rcx
mov dword [0x1800e3584], eax
jmp 0x180052f14
mov eax, dword [0x1800e3598]
test eax, eax
je 0x180052f14
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x58]
add eax, ecx
mov dword [rsp + 0x5c], eax
mov eax, dword [str.Bw8_]
add eax, 0x62
mov word [0x1800e3614], ax
jmp 0x180052f75
mov rax, qword [0x1800e35d8]
test rax, rax
jne 0x180052f30
mov eax, dword [0x1800e35f4]
cmp dword [0x1800e35ac], eax
jbe 0x180052f5d
movsx rax, byte [0x1800e3513]
mov rcx, qword [0x1800e3578]
imul rcx, rax
mov rax, rcx
not rax
movzx ecx, word [rsp + 0x24]
movsx rcx, cx
sub rax, rcx
mov byte [0x1800e355f], al
jmp 0x180052f75
xor eax, eax
cmp eax, 0x141c
je 0x180052f75
movsx eax, byte [0x1800e3533]
add eax, 0x57
mov word [rsp + 0x30], ax
mov eax, dword [rsp + 0xe0]
add eax, 0x30c
mov dword [rsp + 0x32c], eax
movzx eax, word [rsp + 0x38]
test eax, eax
je 0x180052f93
jmp 0x180052fa7
cmp qword [0x1800e35e8], 0
jne 0x180052fa7
mov dword [0x1800e358c], 0xd072ba35
mov eax, dword [0x18094ab58]
mov dword [rsp + 0xe4], eax
mov eax, dword [rsp + 0x48]
cdqe
cmp rax, qword [0x1800e35e8]
jb 0x180052fc5
jmp 0x180052fd6
movsx eax, byte [rsp + 0x21]
test eax, eax
je 0x180052fd6
mov dword [rsp + 0x68], 0x9196
mov eax, dword [rsp + 0xe4]
add eax, 0x14
mov dword [rsp + 0x330], eax
movzx eax, byte [rsp + 0x21]
inc al
mov byte [rsp + 0x21], al
mov eax, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x80]
add eax, ecx
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0xe4]
add eax, 0xc6
mov dword [rsp + 0x23c], eax
movzx eax, word [rsp + 0x34]
cwde
test eax, eax
je 0x180053022
jmp 0x18005303d
movzx eax, byte [0x1800e3532]
movzx eax, al
test eax, eax
je 0x18005303d
mov rax, qword [0x1800e35a0]
mov dword [0x1800e35c0], eax
mov eax, dword [rsp + 0xe4]
add eax, 0xac71
mov dword [rsp + 0x240], eax
mov eax, dword [str.Bw8_]
and eax, 0xd3
mov word [rsp + 0x34], ax
mov eax, dword [rsp + 0x78]
sub eax, 0xc3a9cd6a
mov eax, eax
add rax, qword [0x1800e35c8]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x23c]
mov ecx, dword [rsp + 0x240]
or eax, ecx
add eax, 0xffff5309
mov dword [rsp + 0x258], eax
mov eax, dword [0x18094ab58]
mov dword [rsp + 0xec], eax
mov eax, dword [rsp + 0xec]
add eax, 0x29eb
mov dword [rsp + 0xf0], eax
mov byte [0x1800e355f], 2
mov rax, qword [0x1800e35d8]
mov word [rsp + 0x24], ax
movzx eax, byte [0x1800e355f]
mov byte [rsp + 0xe8], al
cmp byte [rsp + 0xe8], 0
je 0x1800530fe
cmp byte [rsp + 0xe8], 1
je 0x1800531f1
cmp byte [rsp + 0xe8], 2
je 0x180053207
jmp 0x18005328c
movzx eax, byte [0x1800e3582]
test eax, eax
jne 0x180053116
mov dword [rsp + 0x1c0], 1
jmp 0x180053121
mov dword [rsp + 0x1c0], 0
movzx eax, word [rsp + 0x30]
cwde
test eax, eax
jne 0x180053138
mov dword [rsp + 0x1c4], 1
jmp 0x180053143
mov dword [rsp + 0x1c4], 0
mov rax, qword [0x1800e35d8]
test rax, rax
jne 0x18005315c
mov dword [rsp + 0x1cc], 1
jmp 0x180053167
mov dword [rsp + 0x1cc], 0
mov eax, dword [rsp + 0x70]
test eax, eax
jne 0x18005317c
mov dword [rsp + 0x1c8], 1
jmp 0x180053187
mov dword [rsp + 0x1c8], 0
movsx eax, word [0x1800e360c]
add eax, dword [rsp + 0x1c0]
not eax
movsx ecx, word [0x1800e3560]
movzx edx, byte [0x1800e355e]
movsx edx, dl
and ecx, edx
add eax, ecx
mov ecx, dword [rsp + 0x1c4]
mov edx, dword [rsp + 0x44]
sub edx, ecx
mov ecx, edx
mov edx, dword [rsp + 0x1c8]
mov edi, dword [rsp + 0x1cc]
sub edi, edx
mov edx, edi
add ecx, edx
and eax, ecx
test eax, eax
jne 0x1800531dc
mov byte [rsp + 0x6c], 1
jmp 0x1800531e1
mov byte [rsp + 0x6c], 0
movzx eax, byte [rsp + 0x6c]
mov byte [0x1800e34eb], al
jmp 0x18005328c
movzx eax, word [rsp + 0x28]
cwde
mov ecx, dword [rsp + 0x78]
add eax, ecx
mov word [rsp + 0x28], ax
jmp 0x18005328c
mov eax, dword [0x1800e3534]
sub eax, 0xb9
mov dword [0x1800e3534], eax
movzx eax, byte [0x1800e3562]
movsx eax, al
test eax, eax
jne 0x180053233
mov dword [rsp + 0x1d0], 1
jmp 0x18005323e
mov dword [rsp + 0x1d0], 0
movzx eax, word [rsp + 0x38]
mov ecx, dword [rsp + 0x58]
sub ecx, eax
mov eax, ecx
cdqe
mov rcx, qword [0x1800e35b8]
mov rdx, qword [0x1800e35b8]
sub rdx, rcx
mov rcx, rdx
add rax, rcx
movzx ecx, word [rsp + 0x3c]
movsx ecx, cx
imul ecx, ecx, 0xc36863bd
imul edx, dword [rsp + 0x1d0], 0x7a90af7
imul ecx, edx
mov ecx, ecx
add rax, rcx
mov qword [0x1800e35d8], rax
mov eax, dword [rsp + 0xec]
add eax, 0x90
mov dword [rsp + 0x2d8], eax
mov eax, dword [rsp + 0xec]
add eax, 0x500f
mov dword [rsp + 0x2dc], eax
movzx eax, word [rsp + 0x28]
cwde
add eax, 0xb12508f3
mov eax, eax
mov qword [0x1800e35b8], rax
mov eax, dword [rsp + 0xf0]
xor eax, 0xaa
mov ecx, dword [rsp + 0xf0]
mov edx, dword [rsp + 0xf0]
imul ecx, edx
or eax, ecx
add eax, 0xf922c208
mov dword [rsp + 0x25c], eax
mov rax, qword [rsp + 0x108]
movzx eax, byte [rax + 2]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x1d4]
sub eax, 0x122
mov ecx, 0x33e
sub ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x1d4]
add ecx, 0xc0
cmp eax, ecx
je 0x180053cf9
mov qword [rsp + 0x88], 2
mov eax, dword [rsp + 0x48]
imul eax, eax, 0xdeee45c0
mov word [rsp + 0x30], ax
mov eax, dword [0x18094ab58]
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x288], rax
cmp qword [rsp + 0x288], 0
je 0x180053383
cmp qword [rsp + 0x288], 1
je 0x180053397
cmp qword [rsp + 0x288], 2
je 0x1800533b7
jmp 0x1800533c2
mov eax, dword [0x1800e35ac]
shr eax, 5
mov eax, eax
mov qword [0x1800e35e0], rax
jmp 0x1800533c2
mov rax, qword [0x1800e3568]
sub rax, 0xd6
mov ecx, dword [rsp + 0x70]
movsxd rcx, ecx
sub rcx, rax
mov rax, rcx
mov dword [rsp + 0x70], eax
jmp 0x1800533c2
mov eax, dword [rsp + 0x74]
not eax
mov word [rsp + 0x2c], ax
mov eax, dword [rsp + 0x68]
test eax, eax
je 0x1800533d7
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x1d8], eax
jmp 0x1800533e4
movzx eax, word [rsp + 0x30]
cwde
mov dword [rsp + 0x1d8], eax
mov eax, dword [rsp + 0x1d8]
mov dword [rsp + 0x60], eax
mov eax, dword [0x18094ab58]
mov dword [rsp + 0xf4], eax
movzx eax, byte [rsp + 0x20]
movzx ecx, word [rsp + 0x24]
movsx ecx, cx
cmp eax, ecx
jge 0x18005340f
jmp 0x18005342d
mov eax, dword [rsp + 0x58]
test eax, eax
je 0x18005342d
mov dword [0x1800e35f0], 0x93c0
mov eax, dword [rsp + 0x58]
shl eax, 6
mov word [rsp + 0x38], ax
mov eax, dword [rsp + 0xf4]
add eax, 0xb931
mov dword [rsp + 0x2e0], eax
mov eax, dword [rsp + 0xf4]
add eax, 0xb094
mov dword [rsp + 0x244], eax
mov eax, dword [rsp + 0xf4]
add eax, 0xb6bb
mov dword [rsp + 0x2e4], eax
mov eax, dword [rsp + 0x244]
imul eax, eax, 0xe
xor eax, 0x9a934
mov dword [rsp + 0x260], eax
cmp dword [0x1800e35c0], 0
jne 0x180053492
mov dword [rsp + 0x1dc], 1
jmp 0x18005349d
mov dword [rsp + 0x1dc], 0
movzx eax, byte [rsp + 0x20]
mov ecx, dword [rsp + 0x1dc]
sub ecx, eax
mov eax, ecx
mov word [rsp + 0x30], ax
mov eax, dword [0x18094ab58]
mov dword [rsp + 0xf8], eax
movsx eax, byte [0x1800e3563]
cmp dword [rsp + 0x44], eax
je 0x1800534ce
jmp 0x18005351c
mov eax, dword [0x1800e35f0]
mov eax, eax
mov rcx, qword [0x1800e35d8]
cmp rax, rcx
jb 0x1800534f5
cmp dword [0x1800e3608], 0
jne 0x1800534f5
mov eax, dword [0x1800e3598]
test eax, eax
je 0x18005351c
mov eax, dword [rsp + 0x7c]
mov eax, eax
movabs rcx, 0xa2e8044e830e5
add rax, rcx
movzx ecx, word [rsp + 0x28]
movsx rcx, cx
and rcx, rax
mov rax, rcx
mov word [rsp + 0x28], ax
mov eax, dword [rsp + 0xf8]
add eax, 0x5e
mov dword [rsp + 0x2e8], eax
mov eax, dword [rsp + 0xf8]
add eax, 0xb34e
mov dword [rsp + 0x1e4], eax
mov byte [0x1800e3513], 1
mov eax, 8
imul rax, rax, 0x23e
lea rcx, [0x1809a9ac0]
movsx rdx, byte [0x1800e3513]
sub rdx, qword [rcx + rax]
mov rax, rdx
mov byte [0x1800e3513], al
movzx eax, byte [0x1800e3513]
mov byte [rsp + 0x1e0], al
cmp byte [rsp + 0x1e0], 0
je 0x180053593
cmp byte [rsp + 0x1e0], 1
je 0x1800535ab
jmp 0x1800535cf
mov eax, 8
mov word [rsp + 0x28], ax
mov eax, dword [0x1800e3610]
mov dword [0x1800e35d4], eax
jmp 0x1800535cf
movzx eax, word [rsp + 0x38]
add eax, 0xd7a3
movzx ecx, word [rsp + 0x28]
movsx ecx, cx
and ecx, eax
mov eax, ecx
mov word [rsp + 0x28], ax
movzx eax, byte [rsp + 0x20]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0xf8]
add eax, 0xda4d
mov dword [rsp + 0x2ec], eax
mov eax, dword [0x1800e35f0]
sub eax, 0x4886
mov eax, eax
mov qword [0x1800e35b8], rax
movzx eax, word [rsp + 0x2c]
movzx eax, ax
add eax, 0xff952666
mov word [0x1800e3614], ax
mov eax, dword [rsp + 0x1e4]
mov ecx, dword [rsp + 0x1e4]
add eax, ecx
mov ecx, 0x16808
sub ecx, eax
mov eax, ecx
mov ecx, dword [rsp + 0x1e8]
mov edx, dword [rsp + 0x1e8]
xor ecx, edx
mov edx, dword [rsp + 0x248]
mov edi, dword [rsp + 0x24c]
sub edx, edi
imul ecx, edx
add eax, ecx
mov dword [rsp + 0x264], eax
movzx eax, word [rsp + 0x38]
shl eax, 7
cdqe
mov qword [0x1800e3600], rax
mov eax, dword [0x18094ab58]
mov dword [rsp + 0xbc], eax
mov eax, dword [0x1800e3598]
movzx ecx, word [0x1800e3614]
cmp eax, ecx
je 0x18005368b
mov dword [rsp + 0x1f0], 1
jmp 0x180053696
mov dword [rsp + 0x1f0], 0
mov eax, dword [0x1800e3598]
cmp eax, 0x31
je 0x1800536ae
mov dword [rsp + 0x1ec], 1
jmp 0x1800536b9
mov dword [rsp + 0x1ec], 0
mov eax, dword [rsp + 0x1ec]
cmp dword [rsp + 0x1f0], eax
jne 0x180053830
mov eax, dword [0x1800e3514]
movsx ecx, byte [0x1800e3513]
cmp eax, ecx
je 0x1800536eb
mov dword [rsp + 0x1f8], 1
jmp 0x1800536f6
mov dword [rsp + 0x1f8], 0
mov eax, dword [0x1800e3514]
cmp eax, 0x55
je 0x18005370e
mov dword [rsp + 0x1f4], 1
jmp 0x180053719
mov dword [rsp + 0x1f4], 0
mov eax, dword [rsp + 0x1f4]
cmp dword [rsp + 0x1f8], eax
jl 0x180053772
movzx eax, byte [0x1800e355e]
movsx eax, al
movzx ecx, word [rsp + 0x24]
movsx ecx, cx
imul eax, ecx
movzx ecx, byte [0x1800e355e]
movsx ecx, cl
sub ecx, eax
mov eax, ecx
mov byte [0x1800e355e], al
movsxd rax, dword [0x1800e35b0]
movabs rcx, 0xcd192f7a4d62
add rax, rcx
mov word [0x1800e3580], ax
jmp 0x18005382e
movzx eax, word [rsp + 0x2c]
movzx eax, ax
test eax, eax
jne 0x18005378d
movsx eax, word [0x1800e3560]
test eax, eax
je 0x18005382e
movzx eax, byte [0x1800e355f]
mov rcx, qword [0x1800e35a0]
or rcx, rax
mov rax, rcx
test rax, rax
jne 0x1800537b3
mov dword [rsp + 0x1fc], 1
jmp 0x1800537be
mov dword [rsp + 0x1fc], 0
cmp dword [str.Bw8_], 0
jne 0x1800537d5
mov qword [rsp + 0x2b8], 1
jmp 0x1800537e1
mov qword [rsp + 0x2b8], 0
movzx eax, word [rsp + 0x34]
cwde
mov ecx, dword [rsp + 0x1fc]
imul ecx, eax
mov eax, ecx
cdqe
movzx ecx, word [rsp + 0x24]
movsx ecx, cx
not ecx
movsxd rcx, ecx
mov rdx, qword [0x1800e3568]
imul rcx, rdx
xor rcx, qword [rsp + 0x2b8]
imul rax, rcx
not rax
mov byte [0x1800e34eb], al
movzx eax, word [rsp + 0x44]
mov word [0x1800e3560], ax
jmp 0x180053879
mov eax, dword [0x1800e3584]
test eax, eax
jb 0x180053847
mov dword [rsp + 0x200], 1
jmp 0x180053852
mov dword [rsp + 0x200], 0
mov eax, dword [rsp + 0x200]
not eax
test eax, eax
je 0x180053879
mov eax, dword [rsp + 0x68]
sub eax, 0xffa876a7
movzx ecx, word [rsp + 0x30]
movsx ecx, cx
sub ecx, eax
mov eax, ecx
mov word [rsp + 0x30], ax
mov eax, dword [rsp + 0xbc]
add eax, 0xf3
mov dword [rsp + 0x2f0], eax
mov eax, dword [rsp + 0x60]
movabs rcx, 0xe9486ccf9cf97
imul rax, rcx
mov dword [rsp + 0x74], eax
movzx eax, word [rsp + 0x34]
cwde
sub eax, 0xf3
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0xbc]
add eax, 0x9b
mov dword [rsp + 0x2f4], eax
mov eax, dword [rsp + 0x7c]
mov eax, eax
mov rcx, qword [0x1800e3568]
cmp rax, rcx
jae 0x180053980
mov rax, qword [0x1800e3600]
not rax
mov rcx, qword [0x1800e3590]
add rcx, rax
mov rax, rcx
test rax, rax
jne 0x180053904
mov qword [rsp + 0x2c0], 1
jmp 0x180053910
mov qword [rsp + 0x2c0], 0
movsx eax, byte [0x1800e3563]
test eax, eax
jne 0x180053928
mov dword [rsp + 0x204], 1
jmp 0x180053933
mov dword [rsp + 0x204], 0
mov eax, dword [0x1800e3608]
movabs rcx, 0xfffdff45f1977c38
mov rdx, qword [rsp + 0x2c0]
add rcx, rdx
add rax, rcx
mov ecx, dword [rsp + 0x64]
mov edx, dword [rsp + 0x204]
sub edx, ecx
mov ecx, edx
not ecx
movzx edx, word [rsp + 0x24]
movsx edx, dx
xor ecx, edx
movsxd rcx, ecx
add rax, rcx
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x58], 0xc
jmp 0x1800539d4
mov eax, dword [0x1800e3584]
test eax, eax
jne 0x180053998
mov qword [rsp + 0x2c8], 1
jmp 0x1800539a4
mov qword [rsp + 0x2c8], 0
movzx eax, word [rsp + 0x28]
cwde
mov ecx, dword [rsp + 0x70]
not ecx
imul eax, ecx
cdqe
mov rcx, qword [0x1800e3570]
add rcx, qword [rsp + 0x2c8]
not rcx
imul rax, rcx
not rax
mov dword [0x1800e3514], eax
mov eax, dword [rsp + 0xbc]
add eax, 0x623c
mov dword [rsp + 0x208], eax
lea rax, [rsp + 0x3b0]
lea rcx, [0x1800b8db8]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x26
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x3b0]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov word [0x1800e35b4], ax
mov eax, dword [rsp + 0x208]
mov ecx, dword [rsp + 0x208]
or eax, ecx
mov ecx, 0x640f
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x268], eax
mov eax, dword [0x18094ab58]
mov dword [rsp + 0xb8], eax
mov eax, dword [rsp + 0xb8]
add eax, 0x25
mov dword [rsp + 0x254], eax
movzx eax, word [rsp + 0x3c]
movsx rax, ax
movabs rcx, 0x72e459068082
add rax, rcx
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0xb8]
add eax, 0x9e
mov dword [rsp + 0x250], eax
movzx eax, byte [0x1800e3533]
inc al
mov byte [0x1800e3533], al
mov eax, dword [rsp + 0x80]
mov ecx, dword [rsp + 0x7c]
add eax, ecx
mov ecx, dword [rsp + 0x80]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0xb8]
add eax, 0x9c
mov dword [rsp + 0x2f8], eax
mov rax, qword [rsp + 0x88]
test rax, rax
jne 0x180053ade
mov dword [rsp + 0x20c], 1
jmp 0x180053ae9
mov dword [rsp + 0x20c], 0
mov eax, dword [rsp + 0x60]
movzx eax, word [0x1800e35d0]
cwde
cmp dword [str.Bw8_], eax
jle 0x180053b4c
mov eax, dword [0x1800e3610]
add eax, 0x1e
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x5c]
test eax, eax
jne 0x180053b20
mov qword [rsp + 0x2d0], 1
jmp 0x180053b2c
mov qword [rsp + 0x2d0], 0
mov rax, qword [0x1800e3578]
not rax
mov rcx, qword [rsp + 0x2d0]
and rcx, rax
mov rax, rcx
mov qword [rsp + 0x88], rax
mov eax, dword [rsp + 0x250]
or eax, 0x362c
mov ecx, dword [rsp + 0x254]
lea eax, [rax + rcx - 0x3c]
mov ecx, dword [rsp + 0xa8]
mov edx, dword [rsp + 0xa8]
xor ecx, edx
mov edx, dword [rsp + 0xa8]
mov edi, dword [rsp + 0xa8]
xor edx, edi
add ecx, edx
mov edx, 0xffffcb19
lea rax, [rax + rdx]
lea eax, [rax + rcx]
mov dword [rsp + 0x26c], eax
mov eax, dword [rsp + 0x258]
mov ecx, dword [rsp + 0x25c]
mov edx, dword [rsp + 0x40]
and edx, ecx
mov ecx, edx
cmp eax, ecx
je 0x180053cf9
mov eax, dword [0x18094ab58]
mov dword [rsp + 0xb4], eax
movabs rax, 0x1c9f230aa7b8a
mov rcx, qword [0x1800e35b8]
sub rcx, rax
mov rax, rcx
mov byte [0x1800e355e], al
movzx eax, word [0x1800e3580]
movzx eax, ax
shl eax, 3
mov word [rsp + 0x38], ax
mov eax, dword [rsp + 0x260]
mov ecx, dword [rsp + 0xb4]
add eax, ecx
mov dword [rsp + 0x270], eax
movsx eax, word [0x1800e35b4]
shl eax, 6
mov word [rsp + 0x2c], ax
mov eax, dword [rsp + 0x264]
mov ecx, dword [rsp + 0xb4]
add eax, ecx
mov dword [rsp + 0xfc], eax
mov rax, qword [0x1800e3568]
add rax, 0x75e1339f
mov qword [0x1800e35a0], rax
mov eax, dword [rsp + 0x268]
mov ecx, dword [rsp + 0xb4]
add eax, ecx
mov dword [rsp + 0x100], eax
mov eax, dword [rsp + 0x26c]
mov ecx, dword [rsp + 0xfc]
sub eax, ecx
mov ecx, dword [rsp + 0x100]
mov edx, dword [rsp + 0xfc]
add ecx, edx
add eax, ecx
mov ecx, dword [rsp + 0x100]
mov edx, dword [rsp + 0x270]
imul ecx, edx
cmp eax, ecx
je 0x180053cf9
movsx rax, word [0x1800e360c]
mov rcx, qword [0x1800e3568]
cmp rax, rcx
jb 0x180053ca7
jmp 0x180053cef
movzx eax, word [rsp + 0x2c]
movzx eax, ax
test eax, eax
jne 0x180053cef
mov eax, dword [rsp + 0x70]
test eax, eax
jne 0x180053cef
mov rax, qword [0x1800e3600]
imul rax, rax, 0x33b2
mov byte [0x1800e3567], al
movzx eax, word [rsp + 0x24]
cwde
movsx ecx, byte [0x1800e3563]
sub eax, ecx
movzx ecx, word [rsp + 0x24]
movsx ecx, cx
sub ecx, eax
mov eax, ecx
mov word [rsp + 0x24], ax
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x108]
lea rax, [rcx + rax*2 + 4]
mov qword [rsp + 0x338], rax
mov rax, qword [rsp + 0x338]
mov eax, dword [rax + 8]
mov rcx, qword [rsp + 0x4a0]
add rcx, rax
mov rax, rcx
mov r8, qword [rsp + 0x4b0]
mov rdx, rax
mov rcx, qword [rsp + 0x4a0]
call fcn.180051070
jmp 0x180053d4f
mov rax, qword [rsp + 0x4b0]
mov eax, dword [rax]
add rsp, 0x488
pop rdi
pop rsi
ret