Function at 0x1558a6e3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb8
mov edi, edi
mov eax, dword [0x15612b88]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x40], eax
mov esi, 0x15580000
mov eax, dword [ebp + 0x10]
push edi
cmp ebx, esi
mov edi, 0xfffffff
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], ebx
jb 0x1558d871
lfence
mov eax, dword [0x1558003c]
mov eax, dword [eax + 0x15580050]
add eax, esi
cmp ebx, eax
jae 0x1558abc5
mov ecx, dword [0x155d5370]
and dword [ebp - 0xc], 0
sub ebx, esi
dec ecx
js 0x1558a77c
mov eax, dword [ebp - 0xc]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x155c1248]
mov dword [ebp - 0x28], edx
mov edx, dword [edx]
and edx, edi
cmp ebx, edx
jae 0x1558a76d
lea ecx, [eax - 1]
jmp 0x1558a777
jbe 0x1558a841
inc eax
mov dword [ebp - 0xc], eax
cmp ecx, dword [ebp - 0xc]
jge 0x1558a74c
xor eax, eax
test eax, eax
je 0x1558abc2
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
and ecx, 7
lea ecx, [ecx + eax + 8]
and ebx, edi
mov eax, dword [0x15581310]
mov dword [ebp - 0x30], ecx
sub eax, ebx
sub dword [ebp - 0x30], esi
mov dword [ebp - 0x34], ecx
lea ecx, [eax + 1]
mov dword [ebp - 0xc], ecx
xor eax, eax
test ecx, ecx
je 0x1558a7da
mov edx, dword [0x1560eac8]
shr dword [ebp - 0xc], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1560eac8], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0xc], 0
jne 0x1558a7b0
xor edx, edx
div ecx
mov eax, dword [ebp - 0x2c]
add eax, edx
push eax
push ebx
push dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
mov eax, 0x2c26314e
add esp, 0xc
mov byte [ebp - 5], 0
test ebx, ebx
jbe 0x1558aa59
mov eax, dword [ebp - 0x34]
lea edi, [ebp - 0x14]
lea esi, [ebx + eax]
movsd dword es:[edi], dword [esi]
mov eax, 0x100
lea ecx, [ebx - 1]
movsw word es:[edi], word [esi]
or byte [ebp - 0x14], 1
or byte [ebp - 0x12], 1
or byte [ebp - 0x10], 1
or byte [ebp - 0xf], 1
test ecx, ecx
mov dword [ebp - 0x18], ecx
jbe 0x1558a9ba
mov esi, dword [ebp - 0x34]
lea edx, [esi + ecx]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x24]
sub edx, esi
mov dword [ebp - 0x28], edx
jmp 0x1558a85d
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
and ecx, 0x3f
and eax, edi
lea eax, [ecx + eax + 0x15580000]
jmp 0x1558a77e
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
test cl, 1
je 0x1558a8ed
mov cl, byte [ebp - 0x11]
xor cl, byte [edx]
and cl, 1
mov byte [ebp - 0x35], cl
je 0x1558a893
movzx ecx, byte [ebp - 0x11]
movzx edi, byte [ebp - 0x12]
movzx esi, byte [edx]
mov edx, ecx
shr edx, 1
shr edi, 1
xor edi, edx
mov edx, esi
xor edx, eax
sar edx, 1
xor edi, edx
jmp 0x1558a8a3
mov ecx, dword [ebp - 0x2c]
movzx esi, byte [ecx]
movzx ecx, byte [ebp - 0x11]
mov edi, ecx
xor edi, esi
shr edi, 1
mov edx, edi
mov edi, dword [ebp - 0x2c]
movzx edi, byte [edi - 1]
xor edx, edi
test dl, 1
je 0x1558a8da
cmp byte [ebp - 0x35], 0
je 0x1558a8cb
movzx edx, byte [ebp - 0x12]
shr edx, 1
shr ecx, 1
xor esi, eax
xor edx, ecx
sar esi, 1
xor edx, esi
jmp 0x1558a8d1
xor ecx, esi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0xf]
jmp 0x1558a95c
cmp byte [ebp - 0x35], 0
je 0x1558a98b
movzx edx, byte [ebp - 0x12]
jmp 0x1558a97d
mov cl, byte [ebp - 0x13]
xor cl, byte [edx]
and cl, 1
mov byte [ebp - 0x35], cl
je 0x1558a91a
movzx ecx, byte [ebp - 0x13]
movzx edi, byte [ebp - 0x14]
mov edx, dword [ebp - 0x2c]
movzx esi, byte [edx]
mov edx, ecx
shr edx, 1
shr edi, 1
xor edi, edx
mov edx, esi
xor edx, eax
sar edx, 1
xor edi, edx
jmp 0x1558a92a
mov ecx, dword [ebp - 0x2c]
movzx esi, byte [ecx]
movzx ecx, byte [ebp - 0x13]
mov edi, ecx
xor edi, esi
shr edi, 1
mov edx, edi
mov edi, dword [ebp - 0x2c]
movzx edi, byte [edi - 1]
xor edx, edi
test dl, 1
je 0x1558a973
cmp byte [ebp - 0x35], 0
je 0x1558a952
movzx edx, byte [ebp - 0x14]
shr edx, 1
shr ecx, 1
xor esi, eax
xor edx, ecx
sar esi, 1
xor edx, esi
jmp 0x1558a958
xor ecx, esi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0x10]
mov esi, dword [ebp - 0x2c]
shr ecx, 1
movzx esi, byte [esi - 1]
xor edx, esi
xor ecx, 0x80
sar edx, 1
xor ecx, edx
jmp 0x1558a99e
cmp byte [ebp - 0x35], 0
je 0x1558a98b
movzx edx, byte [ebp - 0x14]
shr edx, 1
shr ecx, 1
xor esi, eax
xor edx, ecx
sar esi, 1
xor edx, esi
jmp 0x1558a991
xor ecx, esi
shr ecx, 1
mov edx, ecx
mov ecx, dword [ebp - 0x2c]
movzx ecx, byte [ecx - 1]
xor edx, ecx
sar edx, 1
mov ecx, edx
xor byte [ebp - 5], cl
mov esi, dword [ebp - 0x2c]
dec dword [ebp - 0x18]
mov edx, dword [ebp - 0x28]
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x18], 0
mov byte [esi + edx], cl
ja 0x1558a85a
mov ecx, dword [ebp - 0x34]
mov cl, byte [ecx]
xor cl, byte [ebp - 0x13]
and cl, 1
mov byte [ebp - 0x35], cl
je 0x1558a9ea
mov edx, dword [ebp - 0x34]
movzx ecx, byte [ebp - 0x13]
mov edi, ecx
shr edi, 1
movzx esi, byte [edx]
movzx edx, byte [ebp - 0x14]
shr edx, 1
xor edx, edi
mov edi, esi
xor edi, eax
sar edi, 1
xor edx, edi
jmp 0x1558a9fa
mov ecx, dword [ebp - 0x34]
movzx esi, byte [ecx]
movzx ecx, byte [ebp - 0x13]
mov edx, ecx
xor edx, esi
shr edx, 1
test dl, 1
je 0x1558aa27
cmp byte [ebp - 0x35], 0
je 0x1558aa17
movzx edi, byte [ebp - 0x14]
shr edi, 1
shr ecx, 1
xor esi, eax
xor edi, ecx
sar esi, 1
xor edi, esi
jmp 0x1558aa1d
xor ecx, esi
shr ecx, 1
mov edi, ecx
movzx edx, byte [ebp - 0x10]
xor edx, edi
xor edx, eax
jmp 0x1558aa45
cmp byte [ebp - 0x35], 0
je 0x1558aa3f
movzx edx, byte [ebp - 0x14]
shr edx, 1
shr ecx, 1
xor esi, eax
xor edx, ecx
sar esi, 1
xor edx, esi
jmp 0x1558aa45
xor ecx, esi
shr ecx, 1
mov edx, ecx
mov edi, 0xfffffff
mov esi, 0x15580000
sar edx, 1
mov eax, dword [ebp - 0x24]
xor byte [ebp - 5], dl
mov byte [eax], dl
mov ecx, dword [ebp - 0x34]
lea eax, [ecx + ebx]
mov dl, byte [ebp - 5]
cmp dl, byte [eax + 6]
je 0x1558aaf1
call fcn.1558f0da
mov esi, 0x15591b38
mov ecx, dword [ebp - 0x74]
lea ebx, [ecx + 0xc]
mov edi, 0xfffff000
and eax, edi
and ebx, 0xfffffffc
mov dword [ebp - 0x28], eax
lea eax, [ebx + 0xfff]
and eax, edi
mov dword [ecx + 8], esi
mov ecx, 0xffff
mov edx, ecx
mov dword [ebp - 0xc], eax
xor eax, eax
mov edi, dword [0x1560eac8]
imul edi, edi, 0x343fd
add edi, 0x269ec3
mov dword [0x1560eac8], edi
shr edi, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, edi
test edx, edx
jne 0x1558aa9f
div ecx
inc edx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x40]
mov dword [eax + 0x1c], ecx
mov dword [eax], edx
mov dword [ebp - 0x28], 0
jmp 0x1558aae5
mov eax, dword [ebp - 0x28]
mov dword [ebx], eax
add ebx, 4
cmp ebx, dword [ebp - 0xc]
jb 0x1558aadd
mov eax, ecx
sub eax, dword [ebp - 0x24]
mov ecx, dword [0x155d7bd0]
sub esi, ecx
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x40], esi
jne 0x1558ab0e
test eax, eax
je 0x1558abb0
mov ecx, dword [0x155f0a58]
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
sub esi, dword [ebp - 0x34]
add eax, ebx
mov dword [ebp - 0x28], eax
xor eax, eax
dec ecx
mov dword [ebp - 0xc], eax
js 0x1558ab51
add eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x155f0a5c]
and edx, edi
cmp dword [ebp - 0x30], edx
jae 0x1558ab47
lea ecx, [eax - 1]
mov eax, dword [ebp - 0xc]
jmp 0x1558ab4d
jbe 0x1558ab51
inc eax
mov dword [ebp - 0xc], eax
cmp ecx, eax
jge 0x1558ab2a
mov dword [ebp - 0x18], eax
jmp 0x1558aba5
mov eax, dword [ebp - 0x18]
mov eax, dword [eax*4 + 0x155f0a5c]
mov ecx, eax
and ecx, edi
cmp ecx, dword [ebp - 0x28]
jae 0x1558abb0
lea ebx, [ecx + esi + 0x15580000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x1558ab96
dec ecx
je 0x1558ab91
dec ecx
jne 0x1558ab9c
mov edx, dword [ebp - 0x40]
jmp 0x1558ab9c
mov edx, dword [ebp - 0x74]
jmp 0x1558ab9c
mov edx, dword [ebp - 0x40]
sub edx, dword [ebp - 0x74]
dec eax
dec eax
jne 0x1558aba2
add dword [ebx], edx
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [0x155f0a58]
jb 0x1558ab56
mov eax, dword [0x15581310]
mov eax, 0xee9b847f
mov eax, dword [ebp - 0x24]
jmp 0x1558dd75
mov ebx, dword [ebp - 0x34]
cmp ebx, esi
jb 0x1558d871
lfence
mov eax, dword [0x1558003c]
mov eax, dword [eax + 0x15580050]
add eax, esi
cmp ebx, eax
jae 0x1558b378
mov ecx, dword [0x15581314]
and dword [ebp - 0xc], 0
sub ebx, esi
dec ecx
js 0x1558ac25
mov eax, dword [ebp - 0xc]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x155cc5c8]
mov dword [ebp - 0x28], edx
mov edx, dword [edx + 4]
and edx, edi
cmp ebx, edx
jae 0x1558ac16
lea ecx, [eax - 1]
jmp 0x1558ac20
jbe 0x1558ad73
inc eax
mov dword [ebp - 0xc], eax
cmp ecx, dword [ebp - 0xc]
jge 0x1558abf4
xor ecx, ecx
test ecx, ecx
je 0x1558b375
mov eax, dword [ecx]
mov edx, eax
shr eax, 4
mov ebx, eax
shr edx, 1
and edx, 7
mov eax, dword [0x15581310]
lea ecx, [edx + ecx + 8]
sub eax, ebx
lea esi, [ecx + ebx]
mov dword [ebp - 0x30], ecx
sub dword [ebp - 0x30], 0x15580000
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x3c], ebx
lea ecx, [eax + 1]
xor eax, eax
mov edx, ecx
mov dword [ebp - 0x20], esi
test ecx, ecx
je 0x1558ac90
mov edi, dword [0x1560eac8]
imul edi, edi, 0x343fd
add edi, 0x269ec3
mov dword [0x1560eac8], edi
shr edi, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, edi
test edx, edx
jne 0x1558ac69
xor edx, edx
div ecx
mov eax, dword [ebp - 0x2c]
add eax, edx
push eax
push ebx
push dword [ebp - 0x30]
mov dword [ebp - 0x18], eax
mov eax, 0xd1c9a243
mov edi, 0xfffff000
mov eax, dword [esi]
mov dword [ebp - 0xa0], eax
mov eax, dword [esi + 4]
add esp, 0xc
test ebx, ebx
mov dword [ebp - 0x9c], eax
mov byte [ebp - 5], 0
jbe 0x1558b21b
lea eax, [ebp - 0xa0]
push eax
mov eax, 0x6eee9c4c
mov eax, 0xfffffff
mov esi, dword [0x155d7bd0]
mov ebx, dword [ebp - 0xa0]
mov edx, 0x15580000
and dword [ebp - 0x64], 0
and dword [ebp - 0x60], 0
pop ecx
mov ecx, dword [ebp - 0x9c]
and ecx, eax
and ebx, eax
mov eax, edx
mov dword [ebp - 0xc], ecx
add ebx, edx
sub eax, esi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x98], eax
jne 0x1558ad8e
and dword [ebp - 0x24], 0
test ecx, ecx
jbe 0x1558afc4
mov esi, 0x7defec7d
mov ecx, 0x7fffffff
mov edx, esi
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + ebx]
add eax, esi
add dword [ebp - 0x64], eax
add eax, dword [ebp - 0x60]
imul eax, eax, 0x7defec7d
ror eax, 0x1f
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x64], eax
inc dword [ebp - 0x24]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0xc]
jb 0x1558ad2a
jmp 0x1558afc4
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shr ecx, 1
and ecx, 0x3f
and eax, edi
lea ecx, [ecx + eax + 0x15580000]
jmp 0x1558ac27
mov esi, dword [0x1558003c]
lea eax, [ecx + ebx]
mov dword [ebp - 0x5c], eax
lea esi, [esi + 0x155800a0]
mov ecx, ebx
mov eax, dword [esi]
add eax, edx
sub ecx, edx
mov edx, dword [esi + 4]
mov esi, ecx
mov dword [ebp - 0x28], edx
mov edx, ecx
and edx, edi
sub esi, edx
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp - 0xc]
add ecx, esi
mov esi, ecx
and esi, edi
sub ecx, esi
mov dword [ebp - 0x88], esi
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x84], ecx
add esi, eax
cmp eax, esi
mov ecx, eax
mov dword [ebp - 0x80], esi
jmp 0x1558ade7
cmp dword [ecx], edx
jae 0x1558adec
add ecx, dword [ecx + 4]
cmp ecx, esi
mov dword [ebp - 0x7c], ecx
jne 0x1558adde
and dword [ebp - 0x78], 0
cmp ecx, esi
je 0x1558ae1d
cmp dword [ecx], edx
jne 0x1558ae1d
mov edx, dword [ecx + 4]
sub edx, 8
shr edx, 1
je 0x1558ae1d
lea eax, [ecx + 8]
movzx ecx, word [eax]
and ecx, 0xfff
cmp ecx, dword [ebp - 0x2c]
jae 0x1558ae1d
inc dword [ebp - 0x78]
inc eax
inc eax
cmp dword [ebp - 0x78], edx
jne 0x1558ae05
mov esi, 0x7defec7d
mov ecx, 0x7fffffff
mov edx, dword [ebp - 0x7c]
jmp 0x1558ae2f
mov ebx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x80]
je 0x1558af72
mov eax, dword [ebp - 0x88]
cmp dword [edx], eax
ja 0x1558af72
mov edx, dword [edx + 4]
add edx, 0xfffffff8
shr edx, 1
cmp dword [ebp - 0x78], edx
mov edx, dword [ebp - 0x7c]
jne 0x1558ae79
add edx, dword [edx + 4]
mov dword [ebp - 0x7c], edx
cmp edx, dword [ebp - 0x80]
je 0x1558af72
mov eax, dword [ebp - 0x88]
cmp dword [edx], eax
ja 0x1558af72
and dword [ebp - 0x78], 0
jmp 0x1558ae46
mov eax, dword [ebp - 0x88]
cmp dword [edx], eax
jne 0x1558ae9c
mov eax, dword [ebp - 0x78]
movzx eax, word [edx + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x84]
jae 0x1558af72
mov ebx, 0xf000
mov eax, dword [ebp - 0x78]
inc dword [ebp - 0x78]
test word [edx + eax*2 + 8], bx
je 0x1558ae2c
movzx eax, word [edx + eax*2 + 8]
and eax, 0xfff
mov edx, dword [edx]
xor ebx, ebx
lea eax, [eax + edx + 0x15580000]
mov dword [ebp - 0xc], eax
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
je 0x1558af11
mov edx, esi
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + ebx]
add eax, esi
add dword [ebp - 0x64], eax
add eax, dword [ebp - 0x60]
imul eax, eax, 0x7defec7d
ror eax, 0x1f
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x64], eax
inc ebx
mov dword [ebp - 0x60], eax
cmp ebx, dword [ebp - 0x28]
jb 0x1558aed2
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
sub eax, dword [ebp - 0x98]
xor ebx, ebx
mov dword [ebp - 0xb8], eax
mov edx, esi
movzx eax, byte [ebp + ebx - 0xb8]
add eax, esi
add dword [ebp - 0x64], eax
add eax, dword [ebp - 0x60]
imul eax, eax, 0x7defec7d
ror eax, 0x1f
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x64], eax
inc ebx
mov dword [ebp - 0x60], eax
cmp ebx, 4
jb 0x1558af24
mov ebx, dword [ebp - 0xc]
add ebx, 4
mov dword [ebp - 0x24], ebx
jmp 0x1558ae27
mov eax, dword [ebp - 0x5c]
and dword [ebp - 0x24], 0
sub eax, ebx
mov dword [ebp - 0x5c], eax
je 0x1558afc4
mov edx, esi
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + ebx]
add eax, esi
add dword [ebp - 0x64], eax
add eax, dword [ebp - 0x60]
imul eax, eax, 0x7defec7d
ror eax, 0x1f
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x64], eax
inc dword [ebp - 0x24]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x5c]
jb 0x1558af80
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x64]
mov byte [ebp + eax - 0x48], cl
inc eax
cmp eax, 6
jb 0x1558afc6
mov eax, 0x8228cae7
mov eax, 0x100
mov ecx, dword [ebp - 0x3c]
or byte [ebp - 0x48], 1
or byte [ebp - 0x46], 1
or byte [ebp - 0x44], 1
or byte [ebp - 0x43], 1
dec ecx
mov dword [ebp - 0x24], ecx
je 0x1558b18c
mov edx, dword [ebp - 0x34]
lea ebx, [edx + ecx]
mov esi, dword [ebp - 0x18]
sub esi, edx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x5c], esi
test cl, 1
je 0x1558b0c8
movzx edx, byte [ebp - 0x45]
mov bl, byte [ebx]
mov cl, byte [ebp - 0x45]
xor cl, bl
and cl, 1
mov byte [ebp - 0x35], cl
movzx ecx, bl
je 0x1558b046
mov ebx, edx
shr ebx, 1
movzx esi, byte [ebp - 0x46]
shr esi, 1
xor esi, ebx
mov ebx, ecx
xor ebx, eax
sar ebx, 1
xor esi, ebx
jmp 0x1558b04c
mov esi, ecx
xor esi, edx
shr esi, 1
mov ebx, esi
mov esi, dword [ebp - 0x2c]
movzx esi, byte [esi - 1]
xor ebx, esi
test bl, 1
je 0x1558b098
cmp byte [ebp - 0x35], 0
je 0x1558b074
movzx esi, byte [ebp - 0x46]
shr esi, 1
shr edx, 1
xor ecx, eax
xor esi, edx
sar ecx, 1
xor esi, ecx
jmp 0x1558b07a
xor ecx, edx
shr ecx, 1
mov esi, ecx
mov ebx, dword [ebp - 0x2c]
movzx edx, byte [ebx - 1]
movzx ecx, byte [ebp - 0x43]
shr ecx, 1
xor esi, edx
xor ecx, 0x80
sar esi, 1
xor ecx, esi
jmp 0x1558b170
cmp byte [ebp - 0x35], 0
je 0x1558b0b0
movzx esi, byte [ebp - 0x46]
shr esi, 1
shr edx, 1
xor ecx, eax
xor esi, edx
sar ecx, 1
xor esi, ecx
jmp 0x1558b0b6
xor ecx, edx
shr ecx, 1
mov esi, ecx
mov ebx, dword [ebp - 0x2c]
movzx ecx, byte [ebx - 1]
xor esi, ecx
sar esi, 1
mov ecx, esi
jmp 0x1558b170
mov cl, byte [ebx]
movzx edx, byte [ebp - 0x47]
mov byte [ebp - 0x35], cl
mov cl, byte [ebp - 0x47]
xor cl, byte [ebp - 0x35]
and cl, 1
mov byte [ebp - 6], cl
movzx ecx, byte [ebp - 0x35]
je 0x1558b0fc
movzx esi, byte [ebp - 0x48]
mov ebx, edx
shr ebx, 1
shr esi, 1
xor esi, ebx
mov ebx, ecx
xor ebx, eax
sar ebx, 1
xor esi, ebx
mov ebx, dword [ebp - 0x2c]
jmp 0x1558b102
mov esi, ecx
xor esi, edx
shr esi, 1
movzx ebx, byte [ebx - 1]
mov dword [ebp - 0xc], ebx
mov ebx, esi
xor ebx, dword [ebp - 0xc]
test bl, 1
je 0x1558b148
cmp byte [ebp - 6], 0
je 0x1558b12b
movzx esi, byte [ebp - 0x48]
shr esi, 1
shr edx, 1
xor ecx, eax
xor esi, edx
sar ecx, 1
xor esi, ecx
jmp 0x1558b131
xor ecx, edx
shr ecx, 1
mov esi, ecx
mov edx, dword [ebp - 0xc]
movzx ecx, byte [ebp - 0x44]
shr ecx, 1
xor edx, esi
xor ecx, 0x80
sar edx, 1
xor ecx, edx
jmp 0x1558b16d
cmp byte [ebp - 6], 0
je 0x1558b160
movzx esi, byte [ebp - 0x48]
shr esi, 1
shr edx, 1
xor ecx, eax
xor esi, edx
sar ecx, 1
xor esi, ecx
jmp 0x1558b166
xor ecx, edx
shr ecx, 1
mov esi, ecx
mov ecx, dword [ebp - 0xc]
xor ecx, esi
sar ecx, 1
mov ebx, dword [ebp - 0x2c]
xor byte [ebp - 5], cl
mov edx, dword [ebp - 0x5c]
mov byte [edx + ebx], cl
mov ecx, dword [ebp - 0x24]
dec ecx
dec ebx
test ecx, ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x2c], ebx
ja 0x1558b011
mov ecx, dword [ebp - 0x34]
movzx esi, byte [ebp - 0x47]
mov bl, byte [ebp - 0x47]
mov cl, byte [ecx]
xor bl, cl
and bl, 1
mov byte [ebp - 6], bl
movzx ecx, cl
je 0x1558b1be
mov ebx, esi
movzx edx, byte [ebp - 0x48]
shr ebx, 1
shr edx, 1
xor edx, ebx
mov ebx, ecx
xor ebx, eax
sar ebx, 1
xor edx, ebx
mov bl, byte [ebp - 6]
jmp 0x1558b1c4
mov edx, ecx
xor edx, esi
shr edx, 1
test dl, 1
je 0x1558b1ef
test bl, bl
je 0x1558b1df
movzx ebx, byte [ebp - 0x48]
shr ebx, 1
shr esi, 1
xor ecx, eax
xor ebx, esi
sar ecx, 1
xor ebx, ecx
jmp 0x1558b1e5
xor ecx, esi
shr ecx, 1
mov ebx, ecx
movzx edx, byte [ebp - 0x44]
xor edx, ebx
xor edx, eax
jmp 0x1558b20b
test bl, bl
je 0x1558b205
movzx edx, byte [ebp - 0x48]
shr edx, 1
shr esi, 1
xor ecx, eax
xor edx, esi
sar ecx, 1
xor edx, ecx
jmp 0x1558b20b
xor ecx, esi
shr ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x18]
sar edx, 1
mov esi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x3c]
xor byte [ebp - 5], dl
mov byte [eax], dl
mov al, byte [ebp - 5]
cmp al, byte [esi + 8]
je 0x1558b2a2
call fcn.1558f0da
mov ecx, dword [ebp - 0x74]
mov esi, 0x15591b38
and eax, edi
lea ebx, [ecx + 0xc]
mov dword [ebp - 0x20], eax
mov dword [ecx + 8], esi
mov ecx, 0xffff
mov edx, ecx
and ebx, 0xfffffffc
lea eax, [ebx + 0xfff]
and eax, edi
mov dword [ebp - 0x3c], eax
xor eax, eax
mov edi, dword [0x1560eac8]
imul edi, edi, 0x343fd
add edi, 0x269ec3
mov dword [0x1560eac8], edi
shr edi, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, edi
test edx, edx
jne 0x1558b252
div ecx
inc edx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x40]
mov dword [eax + 0x1c], ecx
mov dword [eax], edx
mov dword [ebp - 0x20], 0
jmp 0x1558b298
mov eax, dword [ebp - 0x20]
mov dword [ebx], eax
add ebx, 4
cmp ebx, dword [ebp - 0x3c]
jb 0x1558b290
jmp 0x1558aaea
mov ecx, 0x15580000
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x34]
mov edx, dword [0x155d7bd0]
sub eax, esi
sub ecx, edx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x3c], ecx
jne 0x1558b2c7
test eax, eax
je 0x1558b363
mov ecx, dword [0x155f0a58]
mov edi, dword [ebp - 0x30]
lea eax, [edi + ebx]
sub esi, dword [ebp - 0x34]
xor ebx, ebx
mov dword [ebp - 0x20], eax
dec ecx
js 0x1558b305
lea eax, [ecx + ebx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x155f0a5c]
and edx, 0xfffffff
cmp edi, edx
jae 0x1558b2fc
lea ecx, [eax - 1]
jmp 0x1558b301
jbe 0x1558b309
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x1558b2de
mov edi, ebx
jmp 0x1558b35b
mov edi, eax
jmp 0x1558b35b
mov eax, dword [edi*4 + 0x155f0a5c]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x20]
jae 0x1558b363
lea ebx, [ecx + esi + 0x15580000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x1558b34e
dec ecx
je 0x1558b349
dec ecx
jne 0x1558b354
mov edx, dword [ebp - 0x3c]
jmp 0x1558b354
mov edx, dword [ebp - 0xc]
jmp 0x1558b354
mov edx, dword [ebp - 0x3c]
sub edx, dword [ebp - 0xc]
dec eax
dec eax
jne 0x1558b35a
add dword [ebx], edx
inc edi
cmp edi, dword [0x155f0a58]
jb 0x1558b30d
mov ebx, dword [ebp - 0x34]
cmp ebx, esi
jb 0x1558d871
lfence
mov eax, dword [0x1558003c]
mov eax, dword [eax + 0x15580050]
add eax, esi
cmp ebx, eax
jae 0x1558b7dc
mov ecx, dword [0x155d9f54]
and dword [ebp - 0xc], 0
sub ebx, esi
dec ecx
js 0x1558b3d8
mov eax, dword [ebp - 0xc]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x155d1720]
mov dword [ebp - 0x20], edx
mov edx, dword [edx + 4]
and edx, edi
cmp ebx, edx
jae 0x1558b3c9
lea ecx, [eax - 1]
jmp 0x1558b3d3
jbe 0x1558b4d8
inc eax
mov dword [ebp - 0xc], eax
cmp ecx, dword [ebp - 0xc]
jge 0x1558b3a7
xor ecx, ecx
test ecx, ecx
je 0x1558b7d9
mov eax, dword [ecx]
mov edx, eax
shr eax, 1
and eax, edi
mov ebx, eax
shr edx, 0x1d
lea ecx, [edx + ecx + 8]
lea eax, [ecx + ebx]
mov dword [ebp - 0x18], eax
mov eax, dword [0x15581310]
sub eax, ebx
mov dword [ebp - 0x30], ecx
sub dword [ebp - 0x30], esi
mov dword [ebp - 0x34], ecx
lea ecx, [eax + 1]
xor eax, eax
mov dword [ebp - 0x5c], ebx
test ecx, ecx
mov dword [ebp - 0xc], ecx
je 0x1558b442
mov edx, dword [0x1560eac8]
shr dword [ebp - 0xc], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1560eac8], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0xc], 0
jne 0x1558b418
xor edx, edx
div ecx
mov eax, dword [ebp - 0x2c]
add eax, edx
push eax
push ebx
push dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
mov eax, 0xef02ca47
add esp, 0xc
test ebx, ebx
mov byte [ebp - 5], 0
jbe 0x1558b67d
mov esi, dword [ebp - 0x18]
mov eax, 0x100
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
or byte [ebp - 0x14], 1
or byte [ebp - 0x12], 1
or byte [ebp - 0x10], 1
or byte [ebp - 0xf], 1
dec ebx
mov dword [ebp - 0x3c], ebx
je 0x1558b5ed
mov edx, dword [ebp - 0x34]
lea ecx, [edx + ebx]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x24]
sub ecx, edx
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x2c]
mov cl, byte [ecx]
mov dl, cl
test bl, 1
movzx ecx, cl
je 0x1558b53e
movzx edi, byte [ebp - 0x11]
xor dl, byte [ebp - 0x11]
and dl, 1
mov byte [ebp - 6], dl
je 0x1558b4f4
mov edx, edi
shr edx, 1
movzx esi, byte [ebp - 0x12]
shr esi, 1
xor esi, edx
mov edx, ecx
xor edx, eax
sar edx, 1
xor esi, edx
jmp 0x1558b4fa
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shr ecx, 2
and ecx, 0x3f
and eax, edi
lea ecx, [ecx + eax + 0x15580000]
jmp 0x1558b3da
mov esi, ecx
xor esi, edi
shr esi, 1
mov edx, dword [ebp - 0x2c]
movzx ebx, byte [edx - 1]
mov edx, ebx
xor edx, esi
test dl, 1
je 0x1558b52e
cmp byte [ebp - 6], 0
je 0x1558b522
movzx edx, byte [ebp - 0x12]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x1558b528
xor ecx, edi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0xf]
jmp 0x1558b59b
cmp byte [ebp - 6], 0
je 0x1558b5c3
movzx edx, byte [ebp - 0x12]
jmp 0x1558b5b5
xor dl, byte [ebp - 0x13]
movzx edi, byte [ebp - 0x13]
and dl, 1
mov byte [ebp - 6], dl
je 0x1558b563
mov edx, edi
shr edx, 1
movzx esi, byte [ebp - 0x14]
shr esi, 1
xor esi, edx
mov edx, ecx
xor edx, eax
sar edx, 1
xor esi, edx
jmp 0x1558b569
mov esi, ecx
xor esi, edi
shr esi, 1
mov edx, dword [ebp - 0x2c]
movzx ebx, byte [edx - 1]
mov edx, ebx
xor edx, esi
test dl, 1
je 0x1558b5ab
cmp byte [ebp - 6], 0
je 0x1558b591
movzx edx, byte [ebp - 0x14]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x1558b597
xor ecx, edi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0x10]
shr ecx, 1
xor ebx, edx
xor ecx, 0x80
sar ebx, 1
xor ecx, ebx
jmp 0x1558b5cf
cmp byte [ebp - 6], 0
je 0x1558b5c3
movzx edx, byte [ebp - 0x14]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x1558b5c9
xor ecx, edi
shr ecx, 1
mov edx, ecx
xor ebx, edx
sar ebx, 1
mov ecx, ebx
xor byte [ebp - 5], cl
mov esi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x3c]
dec ebx
mov edx, dword [ebp - 0x20]
dec dword [ebp - 0x2c]
mov byte [esi + edx], cl
test ebx, ebx
mov dword [ebp - 0x3c], ebx
ja 0x1558b4a0
movzx esi, byte [ebp - 0x13]
mov ecx, dword [ebp - 0x34]
mov cl, byte [ecx]
mov bl, cl
movzx ecx, cl
xor bl, byte [ebp - 0x13]
and bl, 1
je 0x1558b619
movzx edx, byte [ebp - 0x14]
mov edi, esi
shr edi, 1
shr edx, 1
xor edx, edi
mov edi, ecx
xor edi, eax
sar edi, 1
xor edx, edi
jmp 0x1558b61f
mov edx, ecx
xor edx, esi
shr edx, 1
test dl, 1
je 0x1558b64a
test bl, bl
je 0x1558b63a
movzx edi, byte [ebp - 0x14]
shr edi, 1
shr esi, 1
xor ecx, eax
xor edi, esi
sar ecx, 1
xor edi, ecx
jmp 0x1558b640
xor ecx, esi
shr ecx, 1
mov edi, ecx
movzx edx, byte [ebp - 0x10]
xor edx, edi
xor edx, eax
jmp 0x1558b666
test bl, bl
je 0x1558b660
movzx edx, byte [ebp - 0x14]
shr edx, 1
shr esi, 1
xor ecx, eax
xor edx, esi
sar ecx, 1
xor edx, ecx
jmp 0x1558b666
xor ecx, esi
shr ecx, 1
mov edx, ecx
sar edx, 1
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x5c]
xor byte [ebp - 5], dl
mov esi, 0x15580000
mov byte [eax], dl
mov edi, 0xfffffff
mov cl, byte [ebp - 5]
mov eax, dword [ebp - 0x18]
cmp cl, byte [eax + 6]
je 0x1558b710
call fcn.1558f0da
mov edi, 0xfffff000
and eax, edi
mov esi, 0x15591b38
mov ecx, dword [ebp - 0x74]
lea ebx, [ecx + 0xc]
and ebx, 0xfffffffc
mov dword [ebp - 0x20], eax
mov dword [ecx + 8], esi
mov ecx, 0xffff
lea eax, [ebx + 0xfff]
mov edx, ecx
and eax, edi
mov dword [ebp - 0x3c], eax
xor eax, eax
mov edi, dword [0x1560eac8]
imul edi, edi, 0x343fd
add edi, 0x269ec3
mov dword [0x1560eac8], edi
shr edi, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, edi
test edx, edx
jne 0x1558b6c0
div ecx
mov eax, dword [ebp - 0x40]
inc edx
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x1c], ecx
mov dword [eax], edx
mov dword [ebp - 0x20], 0
jmp 0x1558b706
mov eax, dword [ebp - 0x20]
mov dword [ebx], eax
add ebx, 4
cmp ebx, dword [ebp - 0x3c]
jb 0x1558b6fe
jmp 0x1558aaea
mov eax, dword [ebp - 0x34]
mov ecx, dword [0x155d7bd0]
sub eax, dword [ebp - 0x24]
sub esi, ecx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xc], esi
jne 0x1558b72e
test eax, eax
je 0x1558abb0
mov ecx, dword [0x155f0a58]
mov esi, dword [ebp - 0x24]
sub esi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
add ebx, eax
mov dword [ebp - 0x20], ebx
xor eax, eax
dec ecx
mov dword [ebp - 0x3c], eax
js 0x1558b771
add eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x155f0a5c]
and edx, edi
cmp dword [ebp - 0x30], edx
jae 0x1558b767
lea ecx, [eax - 1]
mov eax, dword [ebp - 0x3c]
jmp 0x1558b76d
jbe 0x1558b771
inc eax
mov dword [ebp - 0x3c], eax
cmp ecx, eax
jge 0x1558b74a
mov dword [ebp - 0x18], eax
jmp 0x1558b7c9
mov eax, dword [ebp - 0x18]
mov eax, dword [eax*4 + 0x155f0a5c]
mov ecx, eax
and ecx, edi
cmp ecx, dword [ebp - 0x20]
jae 0x1558abb0
lea ebx, [ecx + esi + 0x15580000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x1558b7ba
dec ecx
je 0x1558b7b5
dec ecx
jne 0x1558b7c0
mov edx, dword [ebp - 0xc]
jmp 0x1558b7c0
mov edx, dword [ebp - 0x40]
jmp 0x1558b7c0
mov edx, dword [ebp - 0xc]
sub edx, dword [ebp - 0x40]
dec eax
dec eax
jne 0x1558b7c6
add dword [ebx], edx
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [0x155f0a58]
jb 0x1558b776
jmp 0x1558abb0
mov ebx, dword [ebp - 0x34]
cmp ebx, esi
jb 0x1558d871
lfence
mov eax, dword [0x1558003c]
mov eax, dword [eax + 0x15580050]
add eax, esi
cmp ebx, eax
jae 0x1558bc60
mov ecx, dword [0x155bff30]
and dword [ebp - 0xc], 0
sub ebx, esi
dec ecx
js 0x1558b83c
mov eax, dword [ebp - 0xc]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x155ec2d8]
mov dword [ebp - 0x20], edx
mov edx, dword [edx + 4]
and edx, edi
cmp ebx, edx
jae 0x1558b82d
lea ecx, [eax - 1]
jmp 0x1558b837
jbe 0x1558b93b
inc eax
mov dword [ebp - 0xc], eax
cmp ecx, dword [ebp - 0xc]
jge 0x1558b80b
xor ecx, ecx
test ecx, ecx
je 0x1558bc5d
mov eax, dword [ecx]
mov edx, eax
and eax, edi
shr edx, 0x1d
lea ecx, [edx + ecx + 8]
mov ebx, eax
lea eax, [ecx + ebx]
mov dword [ebp - 0x18], eax
mov eax, dword [0x15581310]
sub eax, ebx
mov dword [ebp - 0x30], ecx
sub dword [ebp - 0x30], esi
mov dword [ebp - 0x34], ecx
lea ecx, [eax + 1]
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0xc], ecx
xor eax, eax
test ecx, ecx
je 0x1558b8a4
mov edx, dword [0x1560eac8]
shr dword [ebp - 0xc], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1560eac8], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0xc], 0
jne 0x1558b87a
xor edx, edx
div ecx
mov eax, dword [ebp - 0x2c]
add edx, eax
push edx
push ebx
push dword [ebp - 0x30]
mov dword [ebp - 0x2c], edx
mov eax, 0xa902cd46
add esp, 0xc
mov byte [ebp - 5], 0
test ebx, ebx
jbe 0x1558baf8
lea ecx, [ebx - 1]
lea edi, [ebp - 0x14]
mov eax, 0x100
mov esi, dword [ebp - 0x18]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
or byte [ebp - 0x14], 1
or byte [ebp - 0x12], 1
or byte [ebp - 0x10], 1
or byte [ebp - 0xf], 1
mov dword [ebp - 0x3c], ecx
test ecx, ecx
jbe 0x1558ba86
mov esi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x2c]
lea ebx, [esi + ecx]
sub edx, esi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], edx
test cl, 1
je 0x1558b9ca
movzx edi, byte [ebp - 0x11]
mov bl, byte [ebx]
mov cl, bl
xor cl, byte [ebp - 0x11]
and cl, 1
mov byte [ebp - 6], cl
movzx ecx, bl
je 0x1558b956
mov edx, edi
movzx esi, byte [ebp - 0x12]
shr edx, 1
shr esi, 1
xor esi, edx
mov edx, ecx
xor edx, eax
sar edx, 1
xor esi, edx
jmp 0x1558b95c
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
shr ecx, 1
mov eax, dword [eax + 4]
and ecx, 0x3f
and eax, edi
lea ecx, [ecx + eax + 0x15580000]
jmp 0x1558b83e
mov esi, ecx
xor esi, edi
shr esi, 1
mov edx, dword [ebp - 0x24]
movzx ebx, byte [edx - 1]
mov edx, ebx
xor edx, esi
test dl, 1
je 0x1558b99e
cmp byte [ebp - 6], 0
je 0x1558b984
movzx edx, byte [ebp - 0x12]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x1558b98a
xor ecx, edi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0xf]
shr ecx, 1
xor ebx, edx
xor ecx, 0x80
sar ebx, 1
xor ecx, ebx
jmp 0x1558b9c2
cmp byte [ebp - 6], 0
je 0x1558b9b6
movzx edx, byte [ebp - 0x12]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x1558b9bc
xor ecx, edi
shr ecx, 1
mov edx, ecx
xor ebx, edx
sar ebx, 1
mov ecx, ebx
mov ebx, dword [ebp - 0x24]
jmp 0x1558ba6a
movzx edi, byte [ebp - 0x13]
mov cl, byte [ebx]
mov dl, cl
movzx ecx, cl
xor dl, byte [ebp - 0x13]
and dl, 1
mov byte [ebp - 6], dl
je 0x1558b9f6
mov edx, edi
shr edx, 1
movzx esi, byte [ebp - 0x14]
shr esi, 1
xor esi, edx
mov edx, ecx
xor edx, eax
sar edx, 1
xor esi, edx
jmp 0x1558b9fc
mov esi, ecx
xor esi, edi
shr esi, 1
mov ebx, dword [ebp - 0x24]
mov edx, esi
movzx esi, byte [ebx - 1]
xor edx, esi
test dl, 1
je 0x1558ba42
cmp byte [ebp - 6], 0
je 0x1558ba24
movzx edx, byte [ebp - 0x14]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x1558ba2a
xor ecx, edi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0x10]
shr ecx, 1
movzx esi, byte [ebx - 1]
xor edx, esi
xor ecx, 0x80
sar edx, 1
xor ecx, edx
jmp 0x1558ba6a
cmp byte [ebp - 6], 0
je 0x1558ba5a
movzx edx, byte [ebp - 0x14]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x1558ba60
xor ecx, edi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebx - 1]
xor edx, ecx
sar edx, 1
mov ecx, edx
xor byte [ebp - 5], cl
mov edx, dword [ebp - 0x20]
mov byte [edx + ebx], cl
mov ecx, dword [ebp - 0x3c]
dec ecx
mov dword [ebp - 0x3c], ecx
dec ebx
mov dword [ebp - 0x24], ebx
test ecx, ecx
ja 0x1558b906
movzx edx, byte [ebp - 0x13]
mov ecx, dword [ebp - 0x34]
mov cl, byte [ecx]
mov bl, cl
movzx ecx, cl
xor bl, byte [ebp - 0x13]
xor ecx, edx
shr ecx, 1
and bl, 1
je 0x1558baac
movzx edx, byte [ebp - 0x14]
xor edx, eax
sar edx, 1
xor edx, ecx
jmp 0x1558baae
mov edx, ecx
test dl, 1
je 0x1558bacf
test bl, bl
je 0x1558bac3
movzx esi, byte [ebp - 0x14]
xor esi, eax
sar esi, 1
xor esi, ecx
jmp 0x1558bac5
mov esi, ecx
movzx edx, byte [ebp - 0x10]
xor edx, esi
xor edx, eax
jmp 0x1558bae1
test bl, bl
je 0x1558badf
movzx edx, byte [ebp - 0x14]
xor edx, eax
sar edx, 1
xor edx, ecx
jmp 0x1558bae1
mov edx, ecx
mov edi, 0xfffffff
mov esi, 0x15580000
sar edx, 1
mov eax, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x5c]
xor byte [ebp - 5], dl
mov byte [eax], dl
mov ecx, dword [ebp - 0x18]
mov al, byte [ebp - 5]
cmp al, byte [ecx + 6]
je 0x1558bb8b
call fcn.1558f0da
mov ecx, dword [ebp - 0x74]
mov edi, 0xfffff000
and eax, edi
mov esi, 0x15591b38
mov dword [ebp - 0x20], eax
lea ebx, [ecx + 0xc]
mov dword [ecx + 8], esi
mov ecx, 0xffff
mov edx, ecx
and ebx, 0xfffffffc
lea eax, [ebx + 0xfff]
and eax, edi
mov dword [ebp - 0x3c], eax
xor eax, eax
mov edi, dword [0x1560eac8]
imul edi, edi, 0x343fd
add edi, 0x269ec3
mov dword [0x1560eac8], edi
shr edi, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, edi
test edx, edx
jne 0x1558bb3b
div ecx
inc edx
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 0x1c], ecx
mov dword [eax], edx
mov dword [ebp - 0x20], 0
jmp 0x1558bb81
mov eax, dword [ebp - 0x20]
mov dword [ebx], eax
add ebx, 4
cmp ebx, dword [ebp - 0x3c]
jb 0x1558bb79
jmp 0x1558aaea
mov eax, dword [ebp - 0x34]
mov ecx, dword [0x155d7bd0]
sub eax, dword [ebp - 0x2c]
sub esi, ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xc], esi
jne 0x1558bba9
test eax, eax
je 0x1558bc4b
mov ecx, dword [0x155f0a58]
mov esi, dword [ebp - 0x2c]
sub esi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
add eax, ebx
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x3c], eax
dec ecx
js 0x1558bbec
add eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x155f0a5c]
and edx, edi
cmp dword [ebp - 0x30], edx
jae 0x1558bbe2
lea ecx, [eax - 1]
mov eax, dword [ebp - 0x3c]
jmp 0x1558bbe8
jbe 0x1558bbec
inc eax
mov dword [ebp - 0x3c], eax
cmp ecx, eax
jge 0x1558bbc5
mov dword [ebp - 0x18], eax
jmp 0x1558bc40
mov eax, dword [ebp - 0x18]
mov eax, dword [eax*4 + 0x155f0a5c]
mov ecx, eax
and ecx, edi
cmp ecx, dword [ebp - 0x20]
jae 0x1558bc4b
lea ebx, [ecx + esi + 0x15580000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x1558bc31
dec ecx
je 0x1558bc2c
dec ecx
jne 0x1558bc37
mov edx, dword [ebp - 0xc]
jmp 0x1558bc37
mov edx, dword [ebp - 0x24]
jmp 0x1558bc37
mov edx, dword [ebp - 0xc]
sub edx, dword [ebp - 0x24]
dec eax
dec eax
jne 0x1558bc3d
add dword [ebx], edx
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [0x155f0a58]
jb 0x1558bbf1
mov eax, dword [0x15581310]
mov eax, 0x564f5ff1
mov eax, dword [ebp - 0x2c]
jmp 0x1558dd75
mov ebx, dword [ebp - 0x34]
cmp ebx, esi
jb 0x1558d871
lfence
mov eax, dword [0x1558003c]
mov eax, dword [eax + 0x15580050]
add eax, esi
cmp ebx, eax
jae 0x1558c0cb
mov ecx, dword [0x155f8d6c]
and dword [ebp - 0xc], 0
sub ebx, esi
dec ecx
js 0x1558bcc2
mov eax, dword [ebp - 0xc]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x155c7ed8]
mov dword [ebp - 0x20], edx
mov edx, dword [edx]
shr edx, 2
and edx, edi
cmp ebx, edx
jae 0x1558bcb3
lea ecx, [eax - 1]
jmp 0x1558bcbd
jbe 0x1558bdc4
inc eax
mov dword [ebp - 0xc], eax
cmp ecx, dword [ebp - 0xc]
jge 0x1558bc8f
xor ecx, ecx
test ecx, ecx
je 0x1558c0c8
mov eax, dword [ecx]
mov edx, eax
and eax, edi
shr edx, 0x1c
and edx, 7
lea ebx, [edx + ecx + 8]
mov ecx, eax
lea eax, [ecx + ebx]
mov dword [ebp - 0x28], eax
mov eax, dword [0x15581310]
sub eax, ecx
mov dword [ebp - 0xc], ecx
lea ecx, [eax + 1]
mov dword [ebp - 0x30], ebx
sub dword [ebp - 0x30], esi
xor eax, eax
mov dword [ebp - 0x34], ebx
test ecx, ecx
mov dword [ebp - 0x24], ecx
je 0x1558bd2d
mov edx, dword [0x1560eac8]
shr dword [ebp - 0x24], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1560eac8], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0x24], 0
jne 0x1558bd03
xor edx, edx
div ecx
mov eax, dword [ebp - 0x2c]
add edx, eax
push edx
push dword [ebp - 0xc]
mov dword [ebp - 0x24], edx
push dword [ebp - 0x30]
mov eax, 0x77c5e178
add esp, 0xc
cmp dword [ebp - 0xc], 0
mov byte [ebp - 5], 0
jbe 0x1558bf6b
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x28]
lea edi, [ebp - 0x14]
mov eax, 0x100
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
or byte [ebp - 0x14], 1
or byte [ebp - 0x12], 1
or byte [ebp - 0x10], 1
or byte [ebp - 0xf], 1
dec ecx
mov dword [ebp - 0x3c], ecx
je 0x1558beda
lea edx, [ebx + ecx]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x24]
sub edx, ebx
mov dword [ebp - 0x20], edx
test cl, 1
mov ecx, dword [ebp - 0x18]
mov cl, byte [ecx]
mov dl, cl
movzx ecx, cl
je 0x1558be38
xor dl, byte [ebp - 0x11]
and dl, 1
movzx edi, byte [ebp - 0x11]
je 0x1558bde0
movzx esi, byte [ebp - 0x12]
mov ebx, edi
shr ebx, 1
shr esi, 1
xor esi, ebx
mov ebx, ecx
xor ebx, eax
sar ebx, 1
xor esi, ebx
jmp 0x1558bde6
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
shr ecx, 2
and ecx, edi
mov eax, dword [eax + 4]
and eax, 0x3f
lea ecx, [ecx + eax + 0x15580000]
jmp 0x1558bcc4
mov esi, ecx
xor esi, edi
shr esi, 1
mov ebx, dword [ebp - 0x18]
movzx ebx, byte [ebx - 1]
mov dword [ebp - 0x2c], ebx
mov ebx, esi
xor ebx, dword [ebp - 0x2c]
test bl, 1
je 0x1558be2e
test dl, dl
je 0x1558be10
movzx edx, byte [ebp - 0x12]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x1558be16
xor ecx, edi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0xf]
xor edx, dword [ebp - 0x2c]
shr ecx, 1
xor ecx, 0x80
sar edx, 1
xor ecx, edx
jmp 0x1558beb9
test dl, dl
je 0x1558beac
movzx edx, byte [ebp - 0x12]
jmp 0x1558be9e
movzx edi, byte [ebp - 0x13]
xor dl, byte [ebp - 0x13]
and dl, 1
je 0x1558be5a
movzx esi, byte [ebp - 0x14]
mov ebx, edi
shr ebx, 1
shr esi, 1
xor esi, ebx
mov ebx, ecx
xor ebx, eax
sar ebx, 1
xor esi, ebx
jmp 0x1558be60
mov esi, ecx
xor esi, edi
shr esi, 1
mov ebx, dword [ebp - 0x18]
movzx ebx, byte [ebx - 1]
mov dword [ebp - 0x2c], ebx
mov ebx, esi
xor ebx, dword [ebp - 0x2c]
test bl, 1
je 0x1558be96
test dl, dl
je 0x1558be8a
movzx edx, byte [ebp - 0x14]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x1558be90
xor ecx, edi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0x10]
jmp 0x1558be1a
test dl, dl
je 0x1558beac
movzx edx, byte [ebp - 0x14]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x1558beb2
xor ecx, edi
shr ecx, 1
mov edx, ecx
xor edx, dword [ebp - 0x2c]
sar edx, 1
mov ecx, edx
mov esi, dword [ebp - 0x18]
xor byte [ebp - 5], cl
mov ebx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
mov byte [esi + edx], cl
mov ecx, dword [ebp - 0x3c]
dec ecx
dec dword [ebp - 0x18]
mov dword [ebp - 0x3c], ecx
test ecx, ecx
ja 0x1558bd8f
mov cl, byte [ebp - 0x13]
mov dl, byte [ebx]
xor cl, dl
movzx esi, dl
and cl, 1
mov byte [ebp - 6], cl
movzx ecx, byte [ebp - 0x13]
je 0x1558bf06
mov edi, ecx
shr edi, 1
movzx edx, byte [ebp - 0x14]
shr edx, 1
xor edx, edi
mov edi, esi
xor edi, eax
sar edi, 1
xor edx, edi
jmp 0x1558bf0c
mov edx, ecx
xor edx, esi
shr edx, 1
test dl, 1
je 0x1558bf39
cmp byte [ebp - 6], 0
je 0x1558bf29
movzx edi, byte [ebp - 0x14]
shr edi, 1
shr ecx, 1
xor esi, eax
xor edi, ecx
sar esi, 1
xor edi, esi
jmp 0x1558bf2f
xor ecx, esi
shr ecx, 1
mov edi, ecx
movzx edx, byte [ebp - 0x10]
xor edx, edi
xor edx, eax
jmp 0x1558bf57
cmp byte [ebp - 6], 0
je 0x1558bf51
movzx edx, byte [ebp - 0x14]
shr edx, 1
shr ecx, 1
xor esi, eax
xor edx, ecx
sar esi, 1
xor edx, esi
jmp 0x1558bf57
xor ecx, esi
shr ecx, 1
mov edx, ecx
mov edi, 0xfffffff
sar edx, 1
mov esi, 0x15580000
mov eax, dword [ebp - 0x24]
xor byte [ebp - 5], dl
mov byte [eax], dl
mov eax, dword [ebp - 0x28]
mov cl, byte [ebp - 5]
cmp cl, byte [eax + 6]
je 0x1558bffe
call fcn.1558f0da
mov edi, 0xfffff000
mov esi, 0x15591b38
and eax, edi
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x20], eax
mov dword [ecx + 8], esi
lea ebx, [ecx + 0xc]
and ebx, 0xfffffffc
lea eax, [ebx + 0xfff]
and eax, edi
mov dword [ebp - 0x28], eax
xor eax, eax
mov ecx, 0xffff
mov edx, ecx
mov edi, dword [0x1560eac8]
imul edi, edi, 0x343fd
add edi, 0x269ec3
mov dword [0x1560eac8], edi
shr edi, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, edi
test edx, edx
jne 0x1558bfae
div ecx
mov ecx, dword [ebp - 0x20]
inc edx
mov eax, dword [ebp - 0x40]
mov dword [eax + 0x1c], ecx
mov dword [eax], edx
mov dword [ebp - 0x20], 0
jmp 0x1558bff4
mov eax, dword [ebp - 0x20]
mov dword [ebx], eax
add ebx, 4
cmp ebx, dword [ebp - 0x28]
jb 0x1558bfec
jmp 0x1558aaea
mov eax, ebx
mov ecx, dword [0x155d7bd0]
sub eax, dword [ebp - 0x24]
mov dword [ebp - 0x40], eax
sub esi, ecx
mov dword [ebp - 0x3c], esi
jne 0x1558c01b
test eax, eax
je 0x1558abb0
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
add eax, ecx
mov ecx, dword [0x155f0a58]
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x28], eax
sub esi, ebx
dec ecx
js 0x1558c060
add eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x155f0a5c]
and edx, edi
cmp dword [ebp - 0x30], edx
jae 0x1558c056
lea ecx, [eax - 1]
mov eax, dword [ebp - 0x28]
jmp 0x1558c05c
jbe 0x1558c060
inc eax
mov dword [ebp - 0x28], eax
cmp ecx, eax
jge 0x1558c039
mov dword [ebp - 0x18], eax
jmp 0x1558c0b8
mov eax, dword [ebp - 0x18]
mov eax, dword [eax*4 + 0x155f0a5c]
mov ecx, eax
and ecx, edi
cmp ecx, dword [ebp - 0x20]
jae 0x1558abb0
lea ebx, [ecx + esi + 0x15580000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x1558c0a9
dec ecx
je 0x1558c0a4
dec ecx
jne 0x1558c0af
mov edx, dword [ebp - 0x3c]
jmp 0x1558c0af
mov edx, dword [ebp - 0x40]
jmp 0x1558c0af
mov edx, dword [ebp - 0x3c]
sub edx, dword [ebp - 0x40]
dec eax
dec eax
jne 0x1558c0b5
add dword [ebx], edx
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [0x155f0a58]
jb 0x1558c065
jmp 0x1558abb0
mov ebx, dword [ebp - 0x34]
cmp ebx, esi
jb 0x1558d871
lfence
mov eax, dword [0x1558003c]
mov eax, dword [eax + 0x15580050]
add eax, esi
cmp ebx, eax
jae 0x1558c817
mov ecx, dword [0x155e78f0]
and dword [ebp - 0xc], 0
sub ebx, esi
dec ecx
js 0x1558c12b
mov eax, dword [ebp - 0xc]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x156003d0]
mov dword [ebp - 0x20], edx
mov edx, dword [edx + 4]
and edx, edi
cmp ebx, edx
jae 0x1558c11c
lea ecx, [eax - 1]
jmp 0x1558c126
jbe 0x1558c26b
inc eax
mov dword [ebp - 0xc], eax
cmp ecx, dword [ebp - 0xc]
jge 0x1558c0fa
xor eax, eax
test eax, eax
je 0x1558c814
mov esi, dword [eax + 4]
mov ecx, dword [eax]
shr ecx, 2
and ecx, 7
lea ecx, [ecx + eax + 8]
and esi, edi
lea ebx, [esi + ecx]
mov eax, dword [0x15581310]
mov dword [ebp - 0x30], ecx
sub eax, esi
sub dword [ebp - 0x30], 0x15580000
mov dword [ebp - 0x34], ecx
lea ecx, [eax + 1]
xor eax, eax
mov dword [ebp - 0x3c], esi
test ecx, ecx
mov dword [ebp - 0x14], ebx
mov edx, ecx
je 0x1558c195
mov edi, dword [0x1560eac8]
imul edi, edi, 0x343fd
add edi, 0x269ec3
mov dword [0x1560eac8], edi
shr edi, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, edi
test edx, edx
jne 0x1558c16e
xor edx, edx
div ecx
mov eax, dword [ebp - 0x2c]
add eax, edx
push eax
push esi
push dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
mov eax, 0xcc57c40d
mov edi, 0xfffff000
mov eax, dword [ebx]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebx + 4]
add esp, 0xc
mov dword [ebp - 0xa4], eax
test esi, esi
mov byte [ebp - 5], 0
jbe 0x1558c6c2
lea eax, [ebp - 0xa8]
push eax
mov eax, 0x3ef7ec71
mov esi, dword [ebp - 0xa4]
mov edx, dword [0x155d7bd0]
mov ebx, dword [ebp - 0xa8]
pop ecx
mov eax, 0xfffffff
and esi, eax
and ebx, eax
mov eax, 0x15580000
xor ecx, ecx
add ebx, eax
sub eax, edx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x2c], eax
jne 0x1558c284
mov dword [ebp - 0xc], ecx
cmp esi, ecx
jbe 0x1558c49d
mov ecx, 0x5d178fad
mov eax, dword [ebp - 0xc]
movzx edx, byte [eax + ebx]
add edx, ecx
add dword [ebp - 0x90], edx
add edx, dword [ebp - 0x8c]
mov eax, edx
imul eax, eax, 0x68a0
rol eax, 0xd
ror edx, 0xd
xor eax, edx
mov edx, ecx
mul edx
add eax, edx
add dword [ebp - 0x90], eax
inc dword [ebp - 0xc]
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0xc], esi
jb 0x1558c227
jmp 0x1558c49d
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
and ecx, edi
mov eax, dword [eax]
and eax, 0x3f
lea eax, [ecx + eax + 0x15580000]
jmp 0x1558c12d
lea eax, [esi + ebx]
mov esi, 0x15580000
mov ecx, ebx
mov edx, dword [0x1558003c]
lea edx, [edx + 0x155800a0]
mov dword [ebp - 0x68], eax
mov eax, dword [edx]
add eax, esi
sub ecx, esi
mov esi, ecx
mov edx, dword [edx + 4]
mov dword [ebp - 0x5c], edx
mov edx, ecx
and edx, edi
sub esi, edx
mov dword [ebp - 0x98], esi
mov esi, dword [ebp - 0x20]
add ecx, esi
mov esi, ecx
and esi, edi
sub ecx, esi
mov dword [ebp - 0x84], ecx
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x88], esi
add ecx, eax
mov esi, eax
mov dword [ebp - 0x80], ecx
cmp eax, ecx
je 0x1558c2e8
cmp dword [esi], edx
jae 0x1558c2e8
add esi, dword [esi + 4]
cmp esi, dword [ebp - 0x80]
jne 0x1558c2dc
and dword [ebp - 0x78], 0
cmp esi, dword [ebp - 0x80]
je 0x1558c31d
cmp dword [esi], edx
jne 0x1558c31d
mov ecx, dword [esi + 4]
sub ecx, 8
shr ecx, 1
je 0x1558c31d
lea eax, [esi + 8]
movzx edx, word [eax]
and edx, 0xfff
cmp edx, dword [ebp - 0x98]
jae 0x1558c31d
inc dword [ebp - 0x78]
inc eax
inc eax
cmp dword [ebp - 0x78], ecx
jne 0x1558c302
mov ecx, 0x5d178fad
cmp esi, dword [ebp - 0x80]
je 0x1558c457
mov eax, dword [ebp - 0x88]
cmp dword [esi], eax
ja 0x1558c457
mov eax, dword [esi + 4]
lea edx, [eax - 8]
shr edx, 1
mov eax, dword [ebp - 0x78]
cmp eax, edx
jne 0x1558c368
add esi, dword [esi + 4]
cmp esi, dword [ebp - 0x80]
je 0x1558c457
mov eax, dword [ebp - 0x88]
cmp dword [esi], eax
ja 0x1558c457
and dword [ebp - 0x78], 0
jmp 0x1558c339
mov edx, dword [ebp - 0x88]
cmp dword [esi], edx
jne 0x1558c388
movzx eax, word [esi + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x84]
jae 0x1558c457
mov edx, 0xf000
mov eax, dword [ebp - 0x78]
inc dword [ebp - 0x78]
test word [esi + eax*2 + 8], dx
je 0x1558c322
mov edx, dword [esi]
movzx eax, word [esi + eax*2 + 8]
and dword [ebp - 0xc], 0
and eax, 0xfff
lea eax, [eax + edx + 0x15580000]
mov dword [ebp - 0x18], eax
sub dword [ebp - 0x18], ebx
mov dword [ebp - 0x28], eax
je 0x1558c3fe
mov eax, dword [ebp - 0xc]
movzx edx, byte [eax + ebx]
add edx, ecx
add dword [ebp - 0x90], edx
add edx, dword [ebp - 0x8c]
mov eax, edx
imul eax, eax, 0x68a0
rol eax, 0xd
ror edx, 0xd
xor eax, edx
mov edx, ecx
mul edx
add eax, edx
add dword [ebp - 0x90], eax
inc dword [ebp - 0xc]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x18]
jb 0x1558c3bc
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
sub eax, dword [ebp - 0x2c]
xor ebx, ebx
mov dword [ebp - 0xb4], eax
movzx edx, byte [ebp + ebx - 0xb4]
add edx, ecx
add dword [ebp - 0x90], edx
add edx, dword [ebp - 0x8c]
mov eax, edx
imul eax, eax, 0x68a0
rol eax, 0xd
ror edx, 0xd
xor eax, edx
mov edx, ecx
mul edx
add eax, edx
add dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], eax
inc ebx
cmp ebx, 4
jb 0x1558c40e
mov ebx, dword [ebp - 0x28]
add ebx, 4
jmp 0x1558c322
xor esi, esi
mov eax, dword [ebp - 0x68]
sub eax, ebx
mov dword [ebp - 0x68], eax
je 0x1558c49d
movzx edx, byte [esi + ebx]
add edx, ecx
add dword [ebp - 0x90], edx
add edx, dword [ebp - 0x8c]
mov eax, edx
imul eax, eax, 0x68a0
rol eax, 0xd
ror edx, 0xd
xor eax, edx
mov edx, ecx
mul edx
add eax, edx
add dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], eax
inc esi
cmp esi, dword [ebp - 0x68]
jb 0x1558c463
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x90]
mov byte [ebp + eax - 0x58], cl
inc eax
cmp eax, 6
jb 0x1558c49f
mov eax, 0x568c415d
mov eax, 0x100
mov ecx, dword [ebp - 0x3c]
or byte [ebp - 0x58], 1
or byte [ebp - 0x56], 1
or byte [ebp - 0x54], 1
or byte [ebp - 0x53], 1
dec ecx
mov dword [ebp - 0x28], ecx
je 0x1558c657
mov ebx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x34]
sub ebx, esi
lea edx, [esi + ecx]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x68], ebx
test cl, 1
je 0x1558c595
mov cl, byte [ebp - 0x55]
xor cl, byte [edx]
and cl, 1
mov byte [ebp - 6], cl
je 0x1558c523
movzx esi, byte [ebp - 0x56]
movzx ecx, byte [ebp - 0x55]
mov dword [ebp - 0x18], ecx
mov ebx, ecx
shr ebx, 1
shr esi, 1
movzx ecx, byte [edx]
xor esi, ebx
mov ebx, ecx
xor ebx, eax
sar ebx, 1
xor esi, ebx
jmp 0x1558c533
movzx ebx, byte [ebp - 0x55]
movzx ecx, byte [edx]
mov esi, ecx
mov dword [ebp - 0x18], ebx
xor esi, ebx
shr esi, 1
mov ebx, esi
movzx esi, byte [edx - 1]
xor ebx, esi
test bl, 1
je 0x1558c56b
cmp byte [ebp - 6], 0
je 0x1558c55b
mov ebx, dword [ebp - 0x18]
movzx esi, byte [ebp - 0x56]
shr esi, 1
shr ebx, 1
xor ecx, eax
xor esi, ebx
sar ecx, 1
xor esi, ecx
jmp 0x1558c562
xor ecx, dword [ebp - 0x18]
shr ecx, 1
mov esi, ecx
movzx ecx, byte [ebp - 0x53]
jmp 0x1558c5fc
cmp byte [ebp - 6], 0
je 0x1558c589
movzx esi, byte [ebp - 0x56]
shr esi, 1
mov ebx, dword [ebp - 0x18]
shr ebx, 1
xor ecx, eax
xor esi, ebx
sar ecx, 1
xor esi, ecx
jmp 0x1558c631
xor ecx, dword [ebp - 0x18]
shr ecx, 1
mov esi, ecx
jmp 0x1558c631
mov bl, byte [edx]
movzx edx, byte [ebp - 0x57]
mov cl, byte [ebp - 0x57]
xor cl, bl
and cl, 1
mov byte [ebp - 6], cl
movzx ecx, bl
je 0x1558c5c1
movzx esi, byte [ebp - 0x58]
mov ebx, edx
shr ebx, 1
shr esi, 1
xor esi, ebx
mov ebx, ecx
xor ebx, eax
sar ebx, 1
xor esi, ebx
jmp 0x1558c5c7
mov esi, ecx
xor esi, edx
shr esi, 1
mov ebx, esi
mov esi, dword [ebp - 0xc]
movzx esi, byte [esi - 1]
xor ebx, esi
test bl, 1
je 0x1558c610
cmp byte [ebp - 6], 0
je 0x1558c5ef
movzx esi, byte [ebp - 0x58]
shr esi, 1
shr edx, 1
xor ecx, eax
xor esi, edx
sar ecx, 1
xor esi, ecx
jmp 0x1558c5f5
xor ecx, edx
shr ecx, 1
mov esi, ecx
movzx ecx, byte [ebp - 0x54]
mov edx, dword [ebp - 0xc]
movzx ebx, byte [edx - 1]
shr ecx, 1
xor esi, ebx
xor ecx, 0x80
sar esi, 1
xor ecx, esi
jmp 0x1558c63b
cmp byte [ebp - 6], 0
je 0x1558c628
movzx esi, byte [ebp - 0x58]
shr esi, 1
shr edx, 1
xor ecx, eax
xor esi, edx
sar ecx, 1
xor esi, ecx
jmp 0x1558c62e
xor ecx, edx
shr ecx, 1
mov esi, ecx
mov edx, dword [ebp - 0xc]
movzx ecx, byte [edx - 1]
xor esi, ecx
sar esi, 1
mov ecx, esi
xor byte [ebp - 5], cl
mov esi, dword [ebp - 0x68]
mov byte [esi + edx], cl
mov ecx, dword [ebp - 0x28]
dec ecx
dec edx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0xc], edx
test ecx, ecx
ja 0x1558c4ed
mov ecx, dword [ebp - 0x34]
mov dl, byte [ecx]
mov bl, byte [ebp - 0x57]
movzx ecx, byte [ebp - 0x57]
xor bl, dl
movzx edx, dl
xor ecx, edx
shr ecx, 1
and bl, 1
je 0x1558c67d
movzx edx, byte [ebp - 0x58]
xor edx, eax
sar edx, 1
xor edx, ecx
jmp 0x1558c67f
mov edx, ecx
test dl, 1
je 0x1558c6a0
test bl, bl
je 0x1558c694
movzx esi, byte [ebp - 0x58]
xor esi, eax
sar esi, 1
xor esi, ecx
jmp 0x1558c696
mov esi, ecx
movzx edx, byte [ebp - 0x54]
xor edx, esi
xor edx, eax
jmp 0x1558c6b2
test bl, bl
je 0x1558c6b0
movzx edx, byte [ebp - 0x58]
xor edx, eax
sar edx, 1
xor edx, ecx
jmp 0x1558c6b2
mov edx, ecx
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x3c]
sar edx, 1
xor byte [ebp - 5], dl
mov byte [eax], dl
mov al, byte [ebp - 5]
cmp al, byte [ebx + 8]
je 0x1558c749
call fcn.1558f0da
and eax, edi
mov esi, 0x15591b38
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x14], eax
lea ebx, [ecx + 0xc]
mov dword [ecx + 8], esi
and ebx, 0xfffffffc
lea eax, [ebx + 0xfff]
and eax, edi
mov ecx, 0xffff
mov edx, ecx
mov dword [ebp - 0x28], eax
xor eax, eax
mov edi, dword [0x1560eac8]
imul edi, edi, 0x343fd
add edi, 0x269ec3
mov dword [0x1560eac8], edi
shr edi, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, edi
test edx, edx
jne 0x1558c6f9
div ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x40]
mov dword [eax + 0x1c], ecx
inc edx
mov dword [eax], edx
mov dword [ebp - 0x14], 0
jmp 0x1558c73f
mov eax, dword [ebp - 0x14]
mov dword [ebx], eax
add ebx, 4
cmp ebx, dword [ebp - 0x28]
jb 0x1558c737
jmp 0x1558aaea
mov edx, dword [0x155d7bd0]
mov eax, dword [ebp - 0x34]
mov ecx, 0x15580000
sub eax, dword [ebp - 0x24]
sub ecx, edx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x28], ecx
jne 0x1558c76c
test eax, eax
je 0x1558abb0
mov ecx, dword [0x155f0a58]
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x24]
sub edi, dword [ebp - 0x34]
add esi, eax
mov dword [ebp - 0x14], esi
xor esi, esi
dec ecx
js 0x1558c7ad
lea eax, [ecx + esi]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x155f0a5c]
and edx, 0xfffffff
cmp dword [ebp - 0x30], edx
jae 0x1558c7a4
lea ecx, [eax - 1]
jmp 0x1558c7a9
jbe 0x1558c7b1
lea esi, [eax + 1]
cmp ecx, esi
jge 0x1558c785
mov ebx, esi
jmp 0x1558c807
mov ebx, eax
jmp 0x1558c807
mov eax, dword [ebx*4 + 0x155f0a5c]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x14]
jae 0x1558abb0
lea esi, [ecx + edi + 0x15580000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x1558c7fa
dec ecx
je 0x1558c7f5
dec ecx
jne 0x1558c800
mov edx, dword [ebp - 0x28]
jmp 0x1558c800
mov edx, dword [ebp - 0x3c]
jmp 0x1558c800
mov edx, dword [ebp - 0x28]
sub edx, dword [ebp - 0x3c]
dec eax
dec eax
jne 0x1558c806
add dword [esi], edx
inc ebx
cmp ebx, dword [0x155f0a58]
jb 0x1558c7b5
jmp 0x1558abb0
mov ebx, dword [ebp - 0x34]
cmp ebx, esi
jb 0x1558d871
lfence
mov eax, dword [0x1558003c]
mov eax, dword [eax + 0x15580050]
add eax, esi
cmp ebx, eax
jae 0x1558cf9c
mov ecx, dword [0x15584290]
and dword [ebp - 0xc], 0
sub ebx, esi
dec ecx
js 0x1558c877
mov eax, dword [ebp - 0xc]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x15582f28]
mov dword [ebp - 0x14], edx
mov edx, dword [edx + 4]
and edx, edi
cmp ebx, edx
jae 0x1558c868
lea ecx, [eax - 1]
jmp 0x1558c872
jbe 0x1558c9cf
inc eax
mov dword [ebp - 0xc], eax
cmp ecx, dword [ebp - 0xc]
jge 0x1558c846
xor ecx, ecx
test ecx, ecx
je 0x1558cf99
mov eax, dword [ecx]
mov edx, eax
and eax, 0xfffffff
mov ebx, eax
shr edx, 0x1d
lea ecx, [edx + ecx + 8]
lea esi, [ecx + ebx]
mov eax, dword [0x15581310]
sub eax, ebx
mov dword [ebp - 0x30], ecx
sub dword [ebp - 0x30], 0x15580000
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x3c], ebx
lea ecx, [eax + 1]
mov dword [ebp - 0x98], esi
mov edx, ecx
xor eax, eax
test ecx, ecx
je 0x1558c8e5
mov edi, dword [0x1560eac8]
imul edi, edi, 0x343fd
add edi, 0x269ec3
mov dword [0x1560eac8], edi
shr edi, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, edi
test edx, edx
jne 0x1558c8be
xor edx, edx
div ecx
mov eax, dword [ebp - 0x2c]
add eax, edx
push eax
push ebx
push dword [ebp - 0x30]
mov dword [ebp - 0x18], eax
mov eax, 0xddc80b13
mov edi, 0xfffff000
mov eax, dword [esi]
mov dword [ebp - 0xb0], eax
mov eax, dword [esi + 4]
add esp, 0xc
test ebx, ebx
mov dword [ebp - 0xac], eax
mov byte [ebp - 5], 0
jbe 0x1558ce42
lea eax, [ebp - 0xb0]
push eax
mov eax, 0xeeaa7467
mov eax, 0xfffffff
mov edx, 0x15580000
mov ebx, dword [ebp - 0xb0]
mov esi, dword [0x155d7bd0]
and dword [ebp - 0x70], 0
and dword [ebp - 0x6c], 0
pop ecx
mov ecx, dword [ebp - 0xac]
and ecx, eax
mov dword [ebp - 0x28], ecx
and ebx, eax
add ebx, edx
mov eax, edx
mov dword [ebp - 0xc], ebx
sub eax, esi
mov dword [ebp - 0x20], eax
jne 0x1558c9eb
and dword [ebp - 0xc], 0
test ecx, ecx
jbe 0x1558cc30
mov esi, 0x5331037b
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax + ebx]
mov edx, esi
add eax, esi
add dword [ebp - 0x70], eax
add eax, dword [ebp - 0x6c]
mul edx
add eax, edx
imul eax, eax, 0x5331037b
mov edx, esi
ror eax, 0x18
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x70], eax
inc dword [ebp - 0xc]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x28]
jb 0x1558c980
jmp 0x1558cc30
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
shr ecx, 2
mov eax, dword [eax + 4]
and ecx, 0x3f
and eax, edi
lea ecx, [ecx + eax + 0x15580000]
jmp 0x1558c879
lea eax, [ecx + ebx]
mov ecx, ebx
mov esi, dword [0x1558003c]
lea esi, [esi + 0x155800a0]
mov dword [ebp - 0x5c], eax
mov eax, dword [esi]
add eax, edx
sub ecx, edx
mov edx, dword [esi + 4]
mov esi, ecx
mov dword [ebp - 0x14], edx
mov edx, ecx
and edx, edi
sub esi, edx
mov dword [ebp - 0x68], esi
mov esi, dword [ebp - 0x28]
add ecx, esi
mov esi, ecx
and esi, edi
sub ecx, esi
mov dword [ebp - 0x88], esi
mov esi, dword [ebp - 0x14]
add esi, eax
cmp eax, esi
mov dword [ebp - 0x84], ecx
mov ecx, eax
mov dword [ebp - 0x80], esi
jmp 0x1558ca44
cmp dword [ecx], edx
jae 0x1558ca49
add ecx, dword [ecx + 4]
cmp ecx, esi
mov dword [ebp - 0x7c], ecx
jne 0x1558ca3b
and dword [ebp - 0x78], 0
cmp ecx, esi
je 0x1558ca7a
cmp dword [ecx], edx
jne 0x1558ca7a
mov edx, dword [ecx + 4]
sub edx, 8
shr edx, 1
je 0x1558ca7a
lea eax, [ecx + 8]
movzx ecx, word [eax]
and ecx, 0xfff
cmp ecx, dword [ebp - 0x68]
jae 0x1558ca7a
inc dword [ebp - 0x78]
inc eax
inc eax
cmp dword [ebp - 0x78], edx
jne 0x1558ca62
mov esi, 0x5331037b
mov ecx, 0x7fffffff
mov edx, dword [ebp - 0x7c]
jmp 0x1558ca8c
mov ebx, dword [ebp - 0xc]
cmp edx, dword [ebp - 0x80]
je 0x1558cbd8
mov eax, dword [ebp - 0x88]
cmp dword [edx], eax
ja 0x1558cbd8
mov edx, dword [edx + 4]
add edx, 0xfffffff8
shr edx, 1
cmp dword [ebp - 0x78], edx
mov edx, dword [ebp - 0x7c]
jne 0x1558cad6
add edx, dword [edx + 4]
mov dword [ebp - 0x7c], edx
cmp edx, dword [ebp - 0x80]
je 0x1558cbd8
mov eax, dword [ebp - 0x88]
cmp dword [edx], eax
ja 0x1558cbd8
and dword [ebp - 0x78], 0
jmp 0x1558caa3
mov eax, dword [ebp - 0x88]
cmp dword [edx], eax
jne 0x1558caf9
mov eax, dword [ebp - 0x78]
movzx eax, word [edx + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x84]
jae 0x1558cbd8
mov eax, dword [ebp - 0x78]
mov ebx, 0xf000
inc dword [ebp - 0x78]
test word [edx + eax*2 + 8], bx
je 0x1558ca89
movzx eax, word [edx + eax*2 + 8]
and eax, 0xfff
xor ebx, ebx
mov edx, dword [edx]
lea eax, [eax + edx + 0x15580000]
mov dword [ebp - 0x28], eax
sub eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
je 0x1558cb74
mov edx, esi
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax + ebx]
add eax, esi
add dword [ebp - 0x70], eax
add eax, dword [ebp - 0x6c]
mul edx
add eax, edx
mov edx, esi
imul eax, eax, 0x5331037b
ror eax, 0x18
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
inc ebx
cmp ebx, dword [ebp - 0x14]
jb 0x1558cb2f
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x94], eax
xor ebx, ebx
mov edx, esi
movzx eax, byte [ebp + ebx - 0x94]
add eax, esi
add dword [ebp - 0x70], eax
add eax, dword [ebp - 0x6c]
mul edx
add eax, edx
imul eax, eax, 0x5331037b
ror eax, 0x18
mov edx, esi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x70], eax
inc ebx
cmp ebx, 4
mov dword [ebp - 0x6c], eax
jb 0x1558cb84
mov ebx, dword [ebp - 0x28]
add ebx, 4
mov dword [ebp - 0xc], ebx
jmp 0x1558ca84
mov eax, dword [ebp - 0x5c]
and dword [ebp - 0xc], 0
sub eax, ebx
mov dword [ebp - 0x14], eax
je 0x1558cc30
mov eax, dword [ebp - 0xc]
mov edx, esi
movzx eax, byte [eax + ebx]
add eax, esi
add dword [ebp - 0x70], eax
add eax, dword [ebp - 0x6c]
mul edx
add eax, edx
imul eax, eax, 0x5331037b
ror eax, 0x18
mov edx, esi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x70], eax
inc dword [ebp - 0xc]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x14]
jb 0x1558cbe6
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x70]
mov byte [ebp + eax - 0x50], cl
inc eax
cmp eax, 6
jb 0x1558cc32
mov eax, 0xd2732a5e
mov eax, 0x100
mov ebx, dword [ebp - 0x3c]
or byte [ebp - 0x50], 1
or byte [ebp - 0x4e], 1
or byte [ebp - 0x4c], 1
or byte [ebp - 0x4b], 1
dec ebx
mov dword [ebp - 0x28], ebx
je 0x1558cdb0
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x18]
sub edx, ecx
lea esi, [ecx + ebx]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x14], edx
mov dl, byte [esi]
movzx esi, dl
test bl, 1
je 0x1558ccf9
mov cl, byte [ebp - 0x4d]
xor cl, dl
and cl, 1
mov byte [ebp - 6], cl
movzx ecx, byte [ebp - 0x4d]
je 0x1558ccae
mov ebx, ecx
movzx edx, byte [ebp - 0x4e]
shr ebx, 1
shr edx, 1
xor edx, ebx
mov ebx, esi
xor ebx, eax
sar ebx, 1
xor edx, ebx
jmp 0x1558ccb4
mov edx, ecx
xor edx, esi
shr edx, 1
mov ebx, dword [ebp - 0xc]
movzx ebx, byte [ebx - 1]
mov dword [ebp - 0x24], ebx
xor ebx, edx
test bl, 1
je 0x1558cce9
cmp byte [ebp - 6], 0
je 0x1558ccdd
movzx ebx, byte [ebp - 0x4e]
shr ebx, 1
shr ecx, 1
xor esi, eax
xor ebx, ecx
sar esi, 1
xor ebx, esi
jmp 0x1558cce3
xor ecx, esi
shr ecx, 1
mov ebx, ecx
movzx ecx, byte [ebp - 0x4b]
jmp 0x1558cd59
cmp byte [ebp - 6], 0
je 0x1558cd84
movzx edx, byte [ebp - 0x4e]
jmp 0x1558cd76
mov cl, byte [ebp - 0x4f]
xor cl, dl
and cl, 1
mov byte [ebp - 6], cl
movzx ecx, byte [ebp - 0x4f]
je 0x1558cd20
movzx edx, byte [ebp - 0x50]
mov ebx, ecx
shr ebx, 1
shr edx, 1
xor edx, ebx
mov ebx, esi
xor ebx, eax
sar ebx, 1
xor edx, ebx
jmp 0x1558cd26
mov edx, ecx
xor edx, esi
shr edx, 1
mov ebx, dword [ebp - 0xc]
movzx ebx, byte [ebx - 1]
mov dword [ebp - 0x24], ebx
xor ebx, edx
test bl, 1
je 0x1558cd6c
cmp byte [ebp - 6], 0
je 0x1558cd4f
movzx ebx, byte [ebp - 0x50]
shr ebx, 1
shr ecx, 1
xor esi, eax
xor ebx, ecx
sar esi, 1
xor ebx, esi
jmp 0x1558cd55
xor ecx, esi
shr ecx, 1
mov ebx, ecx
movzx ecx, byte [ebp - 0x4c]
shr ecx, 1
mov edx, dword [ebp - 0x24]
xor edx, ebx
xor ecx, 0x80
sar edx, 1
xor ecx, edx
jmp 0x1558cd91
cmp byte [ebp - 6], 0
je 0x1558cd84
movzx edx, byte [ebp - 0x50]
shr edx, 1
shr ecx, 1
xor esi, eax
xor edx, ecx
sar esi, 1
xor edx, esi
jmp 0x1558cd8a
xor ecx, esi
shr ecx, 1
mov edx, ecx
mov ecx, dword [ebp - 0x24]
xor ecx, edx
sar ecx, 1
mov esi, dword [ebp - 0xc]
xor byte [ebp - 5], cl
mov ebx, dword [ebp - 0x28]
dec ebx
mov edx, dword [ebp - 0x14]
mov byte [esi + edx], cl
mov dword [ebp - 0x28], ebx
dec esi
mov dword [ebp - 0xc], esi
test ebx, ebx
ja 0x1558cc7d
mov ecx, dword [ebp - 0x34]
mov dl, byte [ecx]
movzx esi, dl
movzx ecx, byte [ebp - 0x4f]
mov bl, byte [ebp - 0x4f]
xor bl, dl
and bl, 1
mov byte [ebp - 6], bl
je 0x1558cde2
movzx edx, byte [ebp - 0x50]
mov ebx, ecx
shr ebx, 1
shr edx, 1
xor edx, ebx
mov ebx, esi
xor ebx, eax
sar ebx, 1
xor edx, ebx
mov bl, byte [ebp - 6]
jmp 0x1558cde8
mov edx, ecx
mov ebx, dword [ebp - 0x34]
cmp ebx, esi
jb 0x1558d871
lfence
mov eax, dword [0x1558003c]
mov eax, dword [eax + 0x15580050]
add eax, esi
cmp ebx, eax
jae 0x1558d403
mov ecx, dword [0x155e2414]
and dword [ebp - 0xc], 0
sub ebx, esi
dec ecx
js 0x1558cffc
mov eax, dword [ebp - 0xc]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x15581330]
mov dword [ebp - 0x14], edx
mov edx, dword [edx + 4]
and edx, edi
cmp ebx, edx
jae 0x1558cfed
lea ecx, [eax - 1]
jmp 0x1558cff7
jbe 0x1558d0fc
inc eax
mov dword [ebp - 0xc], eax
cmp ecx, dword [ebp - 0xc]
jge 0x1558cfcb
xor ecx, ecx
test ecx, ecx
je 0x1558d400
mov eax, dword [ecx]
mov edx, eax
shr eax, 1
and eax, edi
mov ebx, eax
shr edx, 0x1d
lea ecx, [edx + ecx + 8]
lea eax, [ecx + ebx]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x15581310]
mov dword [ebp - 0x30], ecx
sub eax, ebx
sub dword [ebp - 0x30], esi
mov dword [ebp - 0x34], ecx
lea ecx, [eax + 1]
xor eax, eax
mov dword [ebp - 0x68], ebx
test ecx, ecx
mov dword [ebp - 0xc], ecx
je 0x1558d066
mov edx, dword [0x1560eac8]
shr dword [ebp - 0xc], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1560eac8], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0xc], 0
jne 0x1558d03c
xor edx, edx
div ecx
mov eax, dword [ebp - 0x2c]
add eax, edx
push eax
push ebx
push dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
mov eax, 0x7ec74b27
add esp, 0xc
mov byte [ebp - 5], 0
test ebx, ebx
jbe 0x1558d29e
lea edi, [ebp - 0x20]
mov eax, 0x100
mov esi, dword [ebp - 0x3c]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
or byte [ebp - 0x20], 1
or byte [ebp - 0x1e], 1
or byte [ebp - 0x1c], 1
or byte [ebp - 0x1b], 1
dec ebx
mov dword [ebp - 0x28], ebx
je 0x1558d20e
mov edx, dword [ebp - 0x34]
lea ecx, [edx + ebx]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x24]
sub ecx, edx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x18]
test bl, 1
mov dl, byte [ecx]
movzx esi, dl
mov cl, dl
je 0x1558d15f
xor cl, byte [ebp - 0x1d]
and cl, 1
mov byte [ebp - 6], cl
movzx ecx, byte [ebp - 0x1d]
je 0x1558d115
movzx edi, byte [ebp - 0x1e]
mov edx, ecx
shr edx, 1
shr edi, 1
xor edi, edx
mov edx, esi
xor edx, eax
sar edx, 1
xor edi, edx
jmp 0x1558d11b
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
and ecx, edi
and eax, 0x3f
lea ecx, [ecx + eax + 0x15580000]
jmp 0x1558cffe
mov edi, ecx
xor edi, esi
shr edi, 1
mov edx, dword [ebp - 0x18]
movzx ebx, byte [edx - 1]
mov edx, ebx
xor edx, edi
test dl, 1
je 0x1558d14f
cmp byte [ebp - 6], 0
je 0x1558d143
movzx edx, byte [ebp - 0x1e]
shr edx, 1
shr ecx, 1
xor esi, eax
xor edx, ecx
sar esi, 1
xor edx, esi
jmp 0x1558d149
xor ecx, esi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0x1b]
jmp 0x1558d1bc
cmp byte [ebp - 6], 0
je 0x1558d1e4
movzx edx, byte [ebp - 0x1e]
jmp 0x1558d1d6
xor cl, byte [ebp - 0x1f]
and cl, 1
mov byte [ebp - 6], cl
movzx ecx, byte [ebp - 0x1f]
je 0x1558d184
mov edx, ecx
shr edx, 1
movzx edi, byte [ebp - 0x20]
shr edi, 1
xor edi, edx
mov edx, esi
xor edx, eax
sar edx, 1
xor edi, edx
jmp 0x1558d18a
mov edi, ecx
xor edi, esi
shr edi, 1
mov edx, dword [ebp - 0x18]
movzx ebx, byte [edx - 1]
mov edx, ebx
xor edx, edi
test dl, 1
je 0x1558d1cc
cmp byte [ebp - 6], 0
je 0x1558d1b2
movzx edx, byte [ebp - 0x20]
shr edx, 1
shr ecx, 1
xor esi, eax
xor edx, ecx
sar esi, 1
xor edx, esi
jmp 0x1558d1b8
xor ecx, esi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0x1c]
shr ecx, 1
xor ebx, edx
xor ecx, 0x80
sar ebx, 1
xor ecx, ebx
jmp 0x1558d1f0
cmp byte [ebp - 6], 0
je 0x1558d1e4
movzx edx, byte [ebp - 0x20]
shr edx, 1
shr ecx, 1
xor esi, eax
xor edx, ecx
sar esi, 1
xor edx, esi
jmp 0x1558d1ea
xor ecx, esi
shr ecx, 1
mov edx, ecx
xor ebx, edx
sar ebx, 1
mov ecx, ebx
xor byte [ebp - 5], cl
mov ebx, dword [ebp - 0x28]
dec ebx
mov esi, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
dec dword [ebp - 0x18]
test ebx, ebx
mov byte [esi + edx], cl
mov dword [ebp - 0x28], ebx
ja 0x1558d0c4
mov ecx, dword [ebp - 0x34]
mov dl, byte [ecx]
mov bl, dl
movzx ecx, byte [ebp - 0x1f]
movzx esi, dl
xor bl, byte [ebp - 0x1f]
and bl, 1
je 0x1558d23a
mov edi, ecx
shr edi, 1
movzx edx, byte [ebp - 0x20]
shr edx, 1
xor edx, edi
mov edi, esi
xor edi, eax
sar edi, 1
xor edx, edi
jmp 0x1558d240
mov edx, ecx
xor edx, esi
shr edx, 1
test dl, 1
je 0x1558d26b
test bl, bl
je 0x1558d25b
movzx edi, byte [ebp - 0x20]
shr edi, 1
shr ecx, 1
xor esi, eax
xor edi, ecx
sar esi, 1
xor edi, esi
jmp 0x1558d261
xor ecx, esi
shr ecx, 1
mov edi, ecx
movzx edx, byte [ebp - 0x1c]
xor edx, edi
xor edx, eax
jmp 0x1558d287
test bl, bl
je 0x1558d281
movzx edx, byte [ebp - 0x20]
shr edx, 1
shr ecx, 1
xor esi, eax
xor edx, ecx
sar esi, 1
xor edx, esi
jmp 0x1558d287
xor ecx, esi
shr ecx, 1
mov edx, ecx
mov esi, 0x15580000
mov edi, 0xfffffff
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x68]
sar edx, 1
xor byte [ebp - 5], dl
mov byte [eax], dl
mov cl, byte [ebp - 5]
mov eax, dword [ebp - 0x3c]
cmp cl, byte [eax + 6]
je 0x1558d331
call fcn.1558f0da
mov esi, 0x15591b38
mov edi, 0xfffff000
and eax, edi
mov ecx, dword [ebp - 0x74]
lea ebx, [ecx + 0xc]
mov dword [ebp - 0x14], eax
mov dword [ecx + 8], esi
mov ecx, 0xffff
mov edx, ecx
and ebx, 0xfffffffc
lea eax, [ebx + 0xfff]
and eax, edi
mov dword [ebp - 0x28], eax
xor eax, eax
mov edi, dword [0x1560eac8]
imul edi, edi, 0x343fd
add edi, 0x269ec3
mov dword [0x1560eac8], edi
shr edi, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, edi
test edx, edx
jne 0x1558d2e1
div ecx
mov eax, dword [ebp - 0x40]
inc edx
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x1c], ecx
mov dword [eax], edx
mov dword [ebp - 0x14], 0
jmp 0x1558d327
mov eax, dword [ebp - 0x14]
mov dword [ebx], eax
add ebx, 4
cmp ebx, dword [ebp - 0x28]
jb 0x1558d31f
jmp 0x1558aaea
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x24]
mov ecx, dword [0x155d7bd0]
sub esi, ecx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x3c], esi
jne 0x1558d34f
test eax, eax
je 0x1558abb0
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x24]
sub esi, dword [ebp - 0x34]
mov ecx, dword [0x155f0a58]
add eax, ebx
mov dword [ebp - 0x94], eax
xor eax, eax
dec ecx
mov dword [ebp - 0x28], eax
js 0x1558d395
add eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x155f0a5c]
and edx, edi
cmp dword [ebp - 0x30], edx
jae 0x1558d38b
lea ecx, [eax - 1]
mov eax, dword [ebp - 0x28]
jmp 0x1558d391
jbe 0x1558d395
inc eax
mov dword [ebp - 0x28], eax
cmp ecx, eax
jge 0x1558d36e
mov dword [ebp - 0x18], eax
jmp 0x1558d3f0
mov eax, dword [ebp - 0x18]
mov eax, dword [eax*4 + 0x155f0a5c]
mov ecx, eax
and ecx, edi
cmp ecx, dword [ebp - 0x94]
jae 0x1558abb0
lea ebx, [ecx + esi + 0x15580000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x1558d3e1
dec ecx
je 0x1558d3dc
dec ecx
jne 0x1558d3e7
mov edx, dword [ebp - 0x3c]
jmp 0x1558d3e7
mov edx, dword [ebp - 0xc]
jmp 0x1558d3e7
mov edx, dword [ebp - 0x3c]
sub edx, dword [ebp - 0xc]
dec eax
dec eax
jne 0x1558d3ed
add dword [ebx], edx
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [0x155f0a58]
jb 0x1558d39a
jmp 0x1558abb0
mov ebx, dword [ebp - 0x34]
cmp ebx, esi
jb 0x1558d871
lfence
mov eax, dword [0x1558003c]
mov eax, dword [eax + 0x15580050]
add eax, esi
cmp ebx, eax
jae 0x1558d871
mov ecx, dword [0x15581c78]
and dword [ebp - 0xc], 0
sub ebx, esi
dec ecx
js 0x1558d463
mov eax, dword [ebp - 0xc]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x15585630]
mov dword [ebp - 0x14], edx
mov edx, dword [edx + 4]
and edx, edi
cmp ebx, edx
jae 0x1558d454
lea ecx, [eax - 1]
jmp 0x1558d45e
jbe 0x1558d561
inc eax
mov dword [ebp - 0xc], eax
cmp ecx, dword [ebp - 0xc]
jge 0x1558d432
xor ecx, ecx
test ecx, ecx
je 0x1558d871
mov eax, dword [ecx]
mov edx, eax
shr eax, 4
shr edx, 1
and edx, 7
mov ebx, eax
lea ecx, [edx + ecx + 8]
lea eax, [ecx + ebx]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x15581310]
sub eax, ebx
mov dword [ebp - 0x30], ecx
sub dword [ebp - 0x30], esi
mov dword [ebp - 0x34], ecx
lea ecx, [eax + 1]
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0xc], ecx
je 0x1558d4ce
mov edx, dword [0x1560eac8]
shr dword [ebp - 0xc], 0x10
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x1560eac8], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
cmp dword [ebp - 0xc], 0
jne 0x1558d4a4
xor edx, edx
div ecx
mov eax, dword [ebp - 0x2c]
add eax, edx
push eax
push ebx
push dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
mov eax, 0x22e10b03
add esp, 0xc
mov byte [ebp - 5], 0
test ebx, ebx
jbe 0x1558d70f
lea edi, [ebp - 0x20]
mov eax, 0x100
mov esi, dword [ebp - 0x3c]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
or byte [ebp - 0x20], 1
or byte [ebp - 0x1e], 1
or byte [ebp - 0x1c], 1
or byte [ebp - 0x1b], 1
dec ebx
mov dword [ebp - 0x28], ebx
je 0x1558d69d
mov edx, dword [ebp - 0x34]
lea ecx, [edx + ebx]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x24]
sub ecx, edx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x18]
test bl, 1
mov cl, byte [ecx]
mov dl, cl
movzx ecx, cl
je 0x1558d5ee
xor dl, byte [ebp - 0x1d]
movzx edi, byte [ebp - 0x1d]
and dl, 1
je 0x1558d57c
mov ebx, edi
movzx esi, byte [ebp - 0x1e]
shr ebx, 1
shr esi, 1
xor esi, ebx
mov ebx, ecx
xor ebx, eax
sar ebx, 1
xor esi, ebx
jmp 0x1558d582
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
shr ecx, 1
mov eax, dword [eax + 4]
and ecx, 0x3f
and eax, edi
lea ecx, [ecx + eax + 0x15580000]
jmp 0x1558d465
mov esi, ecx
xor esi, edi
shr esi, 1
mov ebx, dword [ebp - 0x18]
movzx ebx, byte [ebx - 1]
mov dword [ebp - 0xc], ebx
mov ebx, esi
xor ebx, dword [ebp - 0xc]
test bl, 1
je 0x1558d5ca
test dl, dl
je 0x1558d5ac
movzx edx, byte [ebp - 0x1e]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x1558d5b2
xor ecx, edi
shr ecx, 1
mov edx, ecx
xor edx, dword [ebp - 0xc]
movzx ecx, byte [ebp - 0x1b]
shr ecx, 1
xor ecx, 0x80
sar edx, 1
xor ecx, edx
jmp 0x1558d67f
test dl, dl
je 0x1558d5e0
movzx edx, byte [ebp - 0x1e]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x1558d5e6
xor ecx, edi
shr ecx, 1
mov edx, ecx
xor edx, dword [ebp - 0xc]
jmp 0x1558d67b
movzx edi, byte [ebp - 0x1f]
xor dl, byte [ebp - 0x1f]
and dl, 1
mov byte [ebp - 6], dl
je 0x1558d613
mov edx, edi
movzx esi, byte [ebp - 0x20]
shr edx, 1
shr esi, 1
xor esi, edx
mov edx, ecx
xor edx, eax
sar edx, 1
xor esi, edx
jmp 0x1558d619
mov esi, ecx
xor esi, edi
shr esi, 1
mov edx, dword [ebp - 0x18]
movzx ebx, byte [edx - 1]
mov edx, esi
xor edx, ebx
test dl, 1
je 0x1558d65b
cmp byte [ebp - 6], 0
je 0x1558d641
movzx edx, byte [ebp - 0x20]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x1558d647
xor ecx, edi
shr ecx, 1
mov edx, ecx
movzx ecx, byte [ebp - 0x1c]
shr ecx, 1
xor ebx, edx
xor ecx, 0x80
sar ebx, 1
xor ecx, ebx
jmp 0x1558d67f
cmp byte [ebp - 6], 0
je 0x1558d673
movzx edx, byte [ebp - 0x20]
shr edx, 1
shr edi, 1
xor ecx, eax
xor edx, edi
sar ecx, 1
xor edx, ecx
jmp 0x1558d679
xor ecx, edi
shr ecx, 1
mov edx, ecx
xor edx, ebx
sar edx, 1
mov ecx, edx
xor byte [ebp - 5], cl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x18]
dec ebx
dec dword [ebp - 0x18]
mov byte [esi + edx], cl
mov dword [ebp - 0x28], ebx
test ebx, ebx
ja 0x1558d52c
movzx edx, byte [ebp - 0x1f]
mov ecx, dword [ebp - 0x34]
mov cl, byte [ecx]
mov bl, cl
xor bl, byte [ebp - 0x1f]
movzx ecx, cl
xor ecx, edx
shr ecx, 1
and bl, 1
je 0x1558d6c3
movzx edx, byte [ebp - 0x20]
xor edx, eax
sar edx, 1
xor edx, ecx
jmp 0x1558d6c5
mov edx, ecx
test dl, 1
je 0x1558d6e6
test bl, bl
je 0x1558d6da
movzx esi, byte [ebp - 0x20]
xor esi, eax
sar esi, 1
xor esi, ecx
jmp 0x1558d6dc
mov esi, ecx
movzx edx, byte [ebp - 0x1c]
xor edx, esi
xor edx, eax
jmp 0x1558d6f8
test bl, bl
je 0x1558d6f6
movzx edx, byte [ebp - 0x20]
xor edx, eax
sar edx, 1
xor edx, ecx
jmp 0x1558d6f8
mov edx, ecx
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x68]
mov edi, 0xfffffff
sar edx, 1
mov esi, 0x15580000
xor byte [ebp - 5], dl
mov byte [eax], dl
mov eax, dword [ebp - 0x3c]
mov cl, byte [ebp - 5]
cmp cl, byte [eax + 6]
je 0x1558d7a2
call fcn.1558f0da
mov ecx, dword [ebp - 0x74]
mov edi, 0xfffff000
mov esi, 0x15591b38
and eax, edi
lea ebx, [ecx + 0xc]
mov dword [ebp - 0x14], eax
and ebx, 0xfffffffc
mov dword [ecx + 8], esi
lea eax, [ebx + 0xfff]
and eax, edi
mov ecx, 0xffff
mov edx, ecx
mov dword [ebp - 0x28], eax
xor eax, eax
mov edi, dword [0x1560eac8]
imul edi, edi, 0x343fd
add edi, 0x269ec3
mov dword [0x1560eac8], edi
shr edi, 0x10
shl eax, 0x10
shr edx, 0x10
or eax, edi
test edx, edx
jne 0x1558d752
div ecx
inc edx
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x1c], ecx
mov dword [eax], edx
mov dword [ebp - 0x14], 0
jmp 0x1558d798
mov eax, dword [ebp - 0x14]
mov dword [ebx], eax
add ebx, 4
cmp ebx, dword [ebp - 0x28]
jb 0x1558d790
jmp 0x1558aaea
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x24]
mov ecx, dword [0x155d7bd0]
sub esi, ecx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x3c], esi
jne 0x1558d7c0
test eax, eax
je 0x1558abb0
mov ecx, dword [0x155f0a58]
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
sub esi, dword [ebp - 0x34]
add eax, ebx
mov dword [ebp - 0x94], eax
xor eax, eax
dec ecx
mov dword [ebp - 0x28], eax
js 0x1558d806
add eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x155f0a5c]
and edx, edi
cmp dword [ebp - 0x30], edx
jae 0x1558d7fc
lea ecx, [eax - 1]
mov eax, dword [ebp - 0x28]
jmp 0x1558d802
jbe 0x1558d806
inc eax
mov dword [ebp - 0x28], eax
cmp ecx, eax
jge 0x1558d7df
mov dword [ebp - 0x18], eax
jmp 0x1558d861
mov eax, dword [ebp - 0x18]
mov eax, dword [eax*4 + 0x155f0a5c]
mov ecx, eax
and ecx, edi
cmp ecx, dword [ebp - 0x94]
jae 0x1558abb0
lea ebx, [ecx + esi + 0x15580000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x1558d852
dec ecx
je 0x1558d84d
dec ecx
jne 0x1558d858
mov edx, dword [ebp - 0x3c]
jmp 0x1558d858
mov edx, dword [ebp - 0xc]
jmp 0x1558d858
mov edx, dword [ebp - 0x3c]
sub edx, dword [ebp - 0xc]
dec eax
dec eax
jne 0x1558d85e
add dword [ebx], edx
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, dword [0x155f0a58]
jb 0x1558d80b
jmp 0x1558abb0
mov ebx, dword [ebp - 0x34]
cmp ebx, esi
jb 0x1558dce6
lfence
mov eax, dword [0x1558003c]
mov eax, dword [eax + 0x15580050]
add eax, esi
cmp ebx, eax
jae 0x1558dce6
mov ecx, dword [0x15581318]
and dword [ebp - 0xc], 0
sub ebx, esi
dec ecx
js 0x1558d8d4
mov eax, dword [ebp - 0xc]
add eax, ecx
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x155b76c0]
mov dword [ebp - 0x14], edx
mov edx, dword [edx + 4]
and edx, edi
cmp ebx, edx
jae 0x1558d8c5
lea ecx, [eax - 1]
jmp 0x1558d8cf
jbe 0x1558d9d3
inc eax
mov dword [ebp - 0xc], eax
cmp ecx, dword [ebp - 0xc]
jge 0x1558d8a3
xor ecx, ecx
test ecx, ecx
invalid
test byte [eax], cl