Function at 0x1017b5f0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov edx, dword [esp + 4]
cmp dword [edx], 0
je 0x1017b60c
push str.The_expression_image__type__BITS_was_false
push 0x1027dd64
call fcn.10176970
add esp, 8
ret
mov ecx, dword [edx + 0x68]
mov eax, ecx
and eax, 0x3f0000
cmp eax, 0x10000
je 0x1017b630
push str.The_expression_PIXMAN_FORMAT_TYPE__image__bits.format___PIXMAN_TYPE_A_was_false
push 0x1027dd64
call fcn.10176970
add esp, 8
ret
cmp dword [edx + 0xa8], 0
jne 0x1017b67c
cmp dword [edx + 0xac], 0
jne 0x1017b67c
mov eax, ecx
sar ecx, 0x16
sar eax, 0x18
and ecx, 3
movzx eax, al
shl eax, cl
sub eax, 1
je 0x1017b673
sub eax, 3
je 0x1017b66a
sub eax, 4
jne 0x1017b60b
mov dword [esp + 4], edx
jmp 0x1017baa0
mov dword [esp + 4], edx
jmp 0x1017b810
mov dword [esp + 4], edx
jmp 0x1017b690
mov dword [esp + 4], edx
jmp 0x10198ec0
sub esp, 0x10
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
sar ecx, 0x10
push ebx
mov edx, dword [eax + 0x80]
mov ebx, dword [eax + 0x70]
mov eax, dword [eax + 0x78]
imul ecx, edx
push ebp
mov ebp, dword [esp + 0x20]
push esi
mov dword [esp + 0x14], ebx
push edi
mov dword [esp + 0x1c], edx
lea esi, [eax + ecx*4]
mov eax, ebx
mov ebx, dword [esp + 0x2c]
shl eax, 0x10
mov dword [esp + 0x14], eax
mov edx, dword [ebx]
xor edi, edi
mov ecx, dword [ebp]
add edx, 0x7fff
mov eax, dword [esp + 0x14]
add ecx, 0x7fff
mov dword [esp + 0x10], esi
cmovns edi, ecx
mov ecx, edx
sar ecx, 0x10
cmp ecx, dword [esp + 0x18]
cmovl eax, edx
cmp eax, edi
jle 0x1017b7a0
sar edi, 0x10
mov ecx, edi
mov dword [esp + 0x24], edi
sar ecx, 5
and edi, 0x1f
sar eax, 0x10
sub eax, dword [esp + 0x24]
lea esi, [esi + ecx*4]
lea ecx, [eax + edi]
neg ecx
lea edx, [eax + edi]
mov dword [esp + 0x2c], edx
test cl, 0x1f
je 0x1017b73b
mov ecx, edx
or edx, 0xffffffff
neg ecx
and ecx, 0x1f
shr edx, cl
mov dword [esp + 0x24], edx
jmp 0x1017b747
mov dword [esp + 0x24], 0
mov dword [esp + 0x2c], edx
mov ecx, edi
or edx, 0xffffffff
shl edx, cl
neg edi
sbb edi, edi
and edi, edx
mov ecx, edi
je 0x1017b76d
mov eax, dword [esp + 0x2c]
add eax, 0xffffffe0
jns 0x1017b76d
and ecx, dword [esp + 0x24]
xor eax, eax
xor edx, edx
mov dword [esp + 0x24], edx
sar eax, 5
test ecx, ecx
je 0x1017b779
or dword [esi], ecx
add esi, 4
test eax, eax
je 0x1017b792
lea edx, [eax*4]
mov edi, esi
mov ecx, edx
or eax, 0xffffffff
shr ecx, 2
add esi, edx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x1017b79c
or dword [esi], eax
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x30]
cmp edi, dword [esp + 0x34]
je 0x1017b805
mov eax, dword [ebp + 4]
mov edx, dword [ebp + 0x1c]
add eax, dword [ebp + 0x24]
add edx, dword [ebp]
mov dword [ebp], edx
mov dword [ebp + 4], eax
test eax, eax
jle 0x1017b7ce
sub eax, dword [ebp + 0x10]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0xc]
add eax, edx
mov dword [ebp], eax
mov eax, dword [ebx + 4]
mov edx, dword [ebx + 0x1c]
add eax, dword [ebx + 0x24]
add edx, dword [ebx]
mov dword [ebx], edx
mov dword [ebx + 4], eax
test eax, eax
jle 0x1017b7ef
sub eax, dword [ebx + 0x10]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0xc]
add eax, edx
mov dword [ebx], eax
mov eax, dword [esp + 0x1c]
add edi, 0x10000
mov dword [esp + 0x30], edi
lea esi, [esi + eax*4]
jmp 0x1017b6cd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
sub esp, 0x24
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
push ebx
sar ecx, 0x10
mov edx, dword [eax + 0x80]
push ebp
mov ebp, dword [eax + 0x70]
mov eax, dword [eax + 0x78]
imul ecx, edx
push esi
mov esi, dword [esp + 0x3c]
push edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ebp
lea ebx, [eax + ecx*4]
mov dword [esp + 0x14], ebx
mov eax, dword [edi]
xor edx, edx
mov ecx, dword [esi]
test eax, eax
cmovns edx, eax
mov eax, ecx
sar eax, 0x10
mov dword [esp + 0x1c], edx
cmp eax, ebp
jl 0x1017b866
mov ecx, ebp
shl ecx, 0x10
dec ecx
cmp ecx, edx
jle 0x1017b9c6
sar edx, 0x10
mov eax, ecx
sar eax, 0x10
mov ebp, edx
mov dword [esp + 0x24], eax
mov eax, 0xa000a001
movzx ecx, cx
add ecx, 0x199a
sar ebp, 1
add ebp, ebx
mov dword [esp + 0x20], edx
mov ebx, edx
mul ecx
mov al, byte [ebp]
and ebx, 1
mov byte [esp + 0x38], al
mov al, bl
shl al, 2
mov byte [esp + 0x3c], al
mov eax, dword [esp + 0x1c]
movzx ecx, ax
mov eax, 0xa000a001
shr edx, 0xd
add ecx, 0x199a
mov dword [esp + 0x28], edx
mul ecx
mov al, byte [esp + 0x38]
lea ecx, [ebx*4]
mov ah, 0xf
mov dword [esp + 0x1c], ecx
shl ah, cl
mov cl, byte [esp + 0x3c]
not ah
and ah, al
shr edx, 0xd
shr al, cl
mov ecx, dword [esp + 0x1c]
and al, 0xf
mov dword [esp + 0x10], ebx
sub al, dl
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x18], edx
cmp dword [esp + 0x20], ebx
jne 0x1017b917
add al, byte [esp + 0x28]
mov dl, al
shr dl, 4
neg dl
or dl, al
and dl, 0xf
shl dl, cl
or dl, ah
jmp 0x1017b9bf
add al, 5
mov dl, al
shr dl, 4
neg dl
or dl, al
and dl, 0xf
shl dl, cl
or dl, ah
mov eax, dword [esp + 0x20]
mov byte [ebp], dl
inc eax
mov edx, dword [esp + 0x10]
add ebp, edx
xor edx, 1
mov dword [esp + 0x10], edx
cmp eax, ebx
jge 0x1017b98f
mov esi, dword [esp + 0x24]
sub esi, eax
mov al, byte [ebp]
mov cl, dl
shl cl, 2
shr al, cl
lea ecx, [edx*4]
and al, 0xf
add al, 5
mov dl, al
shr dl, 4
neg dl
or dl, al
mov al, 0xf
and dl, 0xf
shl al, cl
shl dl, cl
not al
and al, byte [ebp]
or dl, al
mov byte [ebp], dl
mov edx, dword [esp + 0x10]
add ebp, edx
xor edx, 1
mov dword [esp + 0x10], edx
sub esi, 1
jne 0x1017b948
mov esi, dword [esp + 0x40]
mov al, byte [ebp]
mov cl, dl
shl cl, 2
shr al, cl
lea ecx, [edx*4]
and al, 0xf
add al, byte [esp + 0x28]
mov dl, al
shr dl, 4
neg dl
or dl, al
mov al, 0xf
shl al, cl
and dl, 0xf
not al
shl dl, cl
and al, byte [ebp]
or dl, al
mov byte [ebp], dl
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x48]
je 0x1017ba91
mov ecx, dword [edi]
mov ebx, dword [edi + 4]
cmp dx, 0xd555
je 0x1017ba33
mov eax, dword [edi + 0x20]
add ecx, dword [edi + 0x18]
add eax, ebx
mov dword [edi], ecx
mov dword [edi + 4], eax
test eax, eax
jle 0x1017b9fe
sub eax, dword [edi + 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0xc]
add eax, ecx
mov dword [edi], eax
mov eax, dword [esi + 4]
mov ebx, dword [esi + 0x18]
add eax, dword [esi + 0x20]
add ebx, dword [esi]
mov dword [esi], ebx
mov dword [esi + 4], eax
test eax, eax
jle 0x1017ba1f
sub eax, dword [esi + 0x10]
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc]
add eax, ebx
mov dword [esi], eax
mov ebx, dword [esp + 0x14]
mov eax, 0x5555
add edx, eax
mov dword [esp + 0x44], edx
jmp 0x1017b848
mov eax, dword [edi + 0x24]
add ecx, dword [edi + 0x1c]
add eax, ebx
mov dword [edi], ecx
mov dword [edi + 4], eax
test eax, eax
jle 0x1017ba51
sub eax, dword [edi + 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0xc]
add eax, ecx
mov dword [edi], eax
mov eax, dword [esi + 4]
mov ebx, dword [esi + 0x1c]
add eax, dword [esi + 0x24]
add ebx, dword [esi]
mov dword [esi], ebx
mov dword [esi + 4], eax
test eax, eax
jle 0x1017ba72
sub eax, dword [esi + 0x10]
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc]
add eax, ebx
mov dword [esi], eax
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
lea ebx, [ebx + eax*4]
mov eax, 0x5556
add edx, eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x44], edx
jmp 0x1017b848
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
sub esp, 0x20
mov eax, dword [esp + 0x24]
push ebx
push ebp
or ebx, 0xffffffff
xor ebp, ebp
mov edx, dword [eax + 0x70]
or ecx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x38]
push esi
mov esi, dword [eax + 0x80]
mov eax, dword [eax + 0x78]
sar edx, 0x10
push edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x2c], esi
imul edx, esi
lea eax, [eax + edx*4]
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x38]
xor esi, esi
mov eax, dword [edx]
test eax, eax
cmovns esi, eax
mov dword [esp + 0x24], esi
mov esi, dword [edi]
mov eax, esi
sar eax, 0x10
cmp eax, dword [esp + 0x20]
jl 0x1017bb0d
mov esi, dword [esp + 0x20]
shl esi, 0x10
dec esi
mov eax, dword [esp + 0x24]
cmp esi, eax
jle 0x1017bdcf
mov ebp, eax
mov eax, esi
sar eax, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
movzx edx, ax
mov eax, 0x88008801
add edx, 0x788
movzx esi, si
mul edx
add esi, 0x788
sar ebp, 0x10
mov edi, edx
mov eax, 0x88008801
mul esi
mov eax, dword [esp + 0x34]
add eax, ebp
shr edi, 0xb
mov dword [esp + 0x24], eax
shr edx, 0xb
mov dword [esp + 0x28], edx
movzx eax, byte [eax]
sub eax, edi
cmp ebp, dword [esp + 0x14]
jne 0x1017bb8d
mov ebp, dword [esp + 0x10]
add eax, edx
movzx edx, al
cmp eax, 0xff
mov eax, 0xff
cmovg edx, eax
mov eax, dword [esp + 0x24]
mov byte [eax], dl
jmp 0x1017bdc7
add eax, 0x11
cmp eax, 0xff
movzx edx, al
mov eax, 0xff
cmovg edx, eax
mov eax, dword [esp + 0x24]
inc ebp
mov dword [esp + 0x24], ebp
mov byte [eax], dl
mov eax, dword [esp + 0x14]
mov edi, eax
sub edi, ebp
cmp edi, 4
jle 0x1017bd6e
test ebx, ebx
jns 0x1017bbda
mov ebx, ebp
mov ecx, eax
mov ebp, dword [esp + 0x10]
inc ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], ebp
jmp 0x1017bda4
cmp ebp, ecx
jge 0x1017bd1a
cmp eax, ebx
jl 0x1017bd1a
cmp ebp, ebx
jle 0x1017bca3
mov edx, dword [esp + 0x10]
mov edi, ebp
mov esi, dword [esp + 0x34]
shl edx, 4
add esi, ebx
add edx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
sub edi, ebx
je 0x1017bc37
mov ebp, edx
mov ecx, 0xff
movzx eax, byte [esi]
lea esi, [esi + 1]
add eax, ebp
cmp eax, 0xff
movzx edx, al
cmovg edx, ecx
mov byte [esi - 1], dl
sub edi, 1
jne 0x1017bc14
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov ebx, ebp
mov edx, dword [esp + 0x34]
mov dword [esp + 0x18], ebx
mov ebp, 0xff
cmp eax, ecx
jge 0x1017bce0
mov ebp, dword [esp + 0x10]
lea esi, [eax + edx]
mov edi, ebp
shl edi, 4
add edi, ebp
sub ecx, eax
je 0x1017bc93
mov ebx, 0xff
nop dword [eax]
movzx eax, byte [esi]
lea esi, [esi + 1]
add eax, edi
cmp eax, 0xff
movzx edx, al
cmovg edx, ebx
mov byte [esi - 1], dl
sub ecx, 1
jne 0x1017bc70
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, eax
inc ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], ebp
jmp 0x1017bda4
mov edx, dword [esp + 0x34]
jge 0x1017bc45
mov edi, ebx
lea esi, [edx + ebp]
sub edi, ebp
je 0x1017bc45
mov ebp, 0xff
movzx eax, byte [esi]
lea esi, [esi + 1]
add eax, 0x11
cmp eax, 0xff
movzx edx, al
cmova edx, ebp
mov byte [esi - 1], dl
sub edi, 1
jne 0x1017bcb7
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
jmp 0x1017bc4a
jle 0x1017bd0c
mov edi, eax
lea esi, [edx + ecx]
sub edi, ecx
je 0x1017bd0c
nop dword [eax + eax]
movzx eax, byte [esi]
lea esi, [esi + 1]
add eax, 0x11
cmp eax, 0xff
movzx edx, al
cmova edx, ebp
mov byte [esi - 1], dl
sub edi, 1
jne 0x1017bcf0
mov ebp, dword [esp + 0x10]
inc ebp
mov dword [esp + 0x10], ebp
jmp 0x1017bda4
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x34]
shl edi, 4
add esi, ebx
add edi, dword [esp + 0x10]
sub ecx, ebx
je 0x1017bd53
mov ebp, 0xff
movzx eax, byte [esi]
lea esi, [esi + 1]
add eax, edi
cmp eax, 0xff
movzx edx, al
cmovg edx, ebp
mov byte [esi - 1], dl
sub ecx, 1
jne 0x1017bd34
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov ebx, ebp
mov ecx, esi
mov dword [esp + 0x18], ebx
mov ebp, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], ebp
jmp 0x1017bda8
mov esi, dword [esp + 0x34]
add esi, ebp
test edi, edi
je 0x1017bda0
mov ebx, 0xff
nop dword [eax]
movzx eax, byte [esi]
lea esi, [esi + 1]
add eax, 0x11
cmp eax, 0xff
movzx edx, al
cmova edx, ebx
mov byte [esi - 1], dl
sub edi, 1
jne 0x1017bd80
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x34]
movzx eax, byte [esi + edi]
add eax, dword [esp + 0x28]
movzx edx, al
cmp eax, 0xff
mov eax, 0xff
cmovg edx, eax
mov byte [esi + edi], dl
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x40], eax
je 0x1017bf04
mov eax, dword [esp + 0x40]
mov esi, dword [edx]
cmp ax, 0xf777
je 0x1017be3e
mov eax, dword [edx + 0x18]
add eax, esi
mov dword [esp + 0x28], eax
mov dword [edx], eax
mov eax, dword [edx + 0x20]
add eax, dword [edx + 4]
mov dword [edx + 4], eax
test eax, eax
jle 0x1017be10
sub eax, dword [edx + 0x10]
mov dword [edx + 4], eax
mov eax, dword [edx + 0xc]
add eax, dword [esp + 0x28]
mov dword [edx], eax
mov eax, dword [edi + 4]
mov esi, dword [edi + 0x18]
add eax, dword [edi + 0x20]
add esi, dword [edi]
mov dword [edi], esi
mov dword [edi + 4], eax
test eax, eax
jle 0x1017be31
sub eax, dword [edi + 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0xc]
add eax, esi
mov dword [edi], eax
add dword [esp + 0x40], 0x1111
jmp 0x1017bae7
mov eax, dword [edx + 0x1c]
add eax, esi
mov dword [esp + 0x28], eax
mov dword [edx], eax
mov eax, dword [edx + 0x24]
add eax, dword [edx + 4]
mov dword [edx + 4], eax
test eax, eax
jle 0x1017be65
sub eax, dword [edx + 0x10]
mov dword [edx + 4], eax
mov eax, dword [edx + 0xc]
add eax, dword [esp + 0x28]
mov dword [edx], eax
mov eax, dword [edi + 4]
mov esi, dword [edi + 0x1c]
add eax, dword [edi + 0x24]
add esi, dword [edi]
mov dword [edi], esi
mov dword [edi + 4], eax
test eax, eax
jle 0x1017be86
sub eax, dword [edi + 0x10]
mov dword [edi + 4], eax
mov eax, dword [edi + 0xc]
add eax, esi
mov dword [edi], eax
add dword [esp + 0x40], 0x1112
cmp ebx, ecx
je 0x1017bef7
mov esi, dword [esp + 0x34]
sub ecx, ebx
add esi, ebx
cmp ebp, 0xf
jne 0x1017beb0
push ecx
push 0xff
push esi
call fcn.101ed310
add esp, 0xc
jmp 0x1017bee4
mov edi, ebp
shl edi, 4
add edi, ebp
test ecx, ecx
je 0x1017bee0
nop dword [eax + eax]
movzx eax, byte [esi]
lea esi, [esi + 1]
add eax, edi
cmp eax, 0xff
movzx edx, al
mov eax, 0xff
cmovg edx, eax
mov byte [esi - 1], dl
sub ecx, 1
jne 0x1017bec0
mov edi, dword [esp + 0x3c]
or ecx, 0xffffffff
or ebx, ecx
mov dword [esp + 0x1c], ecx
xor ebp, ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], ebp
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
jmp 0x1017bae0
cmp ebx, ecx
je 0x1017bf57
mov esi, dword [esp + 0x34]
sub ecx, ebx
add esi, ebx
cmp ebp, 0xf
jne 0x1017bf2c
push ecx
push 0xff
push esi
call fcn.101ed310
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
mov edi, ebp
shl edi, 4
add edi, ebp
test ecx, ecx
je 0x1017bf57
movzx eax, byte [esi]
lea esi, [esi + 1]
add eax, edi
cmp eax, 0xff
movzx edx, al
mov eax, 0xff
cmovg edx, eax
mov byte [esi - 1], dl
sub ecx, 1
jne 0x1017bf37
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
mov edx, dword [esp + 4]
mov ecx, dword [edx + 0x68]
mov eax, ecx
sar eax, 0x18
sar ecx, 0x16
movzx eax, al
and ecx, 3
shl eax, cl
sub eax, 1
je 0x10198ef8
sub eax, 3
je 0x10198eef
sub eax, 4
jne 0x10198f01
mov dword [esp + 4], edx
jmp 0x101993e0
mov dword [esp + 4], edx
jmp 0x101990f0
mov dword [esp + 4], edx
jmp 0x10198f10
ret
sub esp, 0x14
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
push ebx
push ebp
mov ebx, dword [eax + 0x70]
mov edx, dword [eax + 0x80]
mov eax, dword [eax + 0x78]
mov ebp, dword [esp + 0x28]
push esi
sar ecx, 0x10
mov esi, ebx
imul ecx, edx
shl esi, 0x10
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x28]
push edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], esi
mov edx, dword [ebp]
lea eax, [eax + ecx*4]
mov ecx, dword [ebx]
add edx, 0x7fff
xor edi, edi
mov dword [esp + 0x10], eax
add ecx, 0x7fff
mov eax, edx
cmovns edi, ecx
sar eax, 0x10
cmp eax, dword [esp + 0x18]
cmovl esi, edx
cmp esi, edi
jle 0x10199073
mov ecx, dword [esp + 0x10]
sar edi, 0x10
mov dword [esp + 0x30], edi
mov eax, edi
mov edx, dword [esp + 0x30]
sar eax, 5
and edx, 0x1f
sar esi, 0x10
sub esi, dword [esp + 0x30]
lea edi, [ecx + eax*4]
lea eax, [esi + edx]
neg eax
lea ecx, [esi + edx]
mov dword [esp + 0x14], ecx
test al, 0x1f
je 0x10198fbc
neg ecx
or eax, 0xffffffff
and ecx, 0x1f
shr eax, cl
mov dword [esp + 0x30], eax
jmp 0x10198fc8
mov dword [esp + 0x30], 0
mov dword [esp + 0x14], ecx
mov ecx, edx
or eax, 0xffffffff
shl eax, cl
neg edx
sbb edx, edx
and edx, eax
mov ebx, edx
je 0x10198fec
mov esi, dword [esp + 0x14]
add esi, 0xffffffe0
jns 0x10198fec
xor esi, esi
and ebx, dword [esp + 0x30]
mov dword [esp + 0x30], esi
sar esi, 5
test ebx, ebx
je 0x1019901f
mov eax, dword [esp + 0x28]
push 4
push 4
push edi
mov eax, dword [eax + 0xa8]
call eax
or eax, ebx
add esp, 8
mov ebx, dword [esp + 0x2c]
push eax
mov eax, dword [ebx + 0xac]
push edi
call eax
add esp, 0xc
add edi, 4
jmp 0x10199023
mov ebx, dword [esp + 0x28]
test esi, esi
je 0x10199048
nop word [eax + eax]
mov eax, dword [ebx + 0xac]
push 4
push 0xffffffffffffffff
push edi
call eax
add esp, 0xc
add edi, 4
sub esi, 1
jne 0x10199030
mov esi, dword [esp + 0x30]
test esi, esi
je 0x1019906f
mov eax, dword [ebx + 0xa8]
push 4
push 4
push edi
call eax
add esp, 8
or eax, esi
push eax
mov eax, dword [ebx + 0xac]
push edi
call eax
add esp, 0xc
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x34]
cmp esi, dword [esp + 0x38]
je 0x101990dd
mov eax, dword [ebx + 4]
mov edx, dword [ebx + 0x1c]
add eax, dword [ebx + 0x24]
add edx, dword [ebx]
mov dword [ebx], edx
mov dword [ebx + 4], eax
test eax, eax
jle 0x1019909e
sub eax, dword [ebx + 0x10]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0xc]
add eax, edx
mov dword [ebx], eax
mov eax, dword [ebp + 4]
mov edx, dword [ebp + 0x1c]
add eax, dword [ebp + 0x24]
add edx, dword [ebp]
mov dword [ebp], edx
mov dword [ebp + 4], eax
test eax, eax
jle 0x101990c2
sub eax, dword [ebp + 0x10]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0xc]
add eax, edx
mov dword [ebp], eax
mov eax, dword [esp + 0x10]
add esi, 0x10000
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x20]
jmp 0x10198f4a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
sub esp, 0x28
mov eax, dword [esp + 0x2c]
push ebx
mov ebx, dword [esp + 0x34]
push ebp
mov ecx, dword [eax + 0x70]
mov ebp, dword [esp + 0x40]
mov edx, dword [eax + 0x80]
mov eax, dword [eax + 0x78]
mov dword [esp + 0x14], ecx
mov ecx, ebp
sar ecx, 0x10
imul ecx, edx
push esi
mov esi, dword [esp + 0x40]
push edi
mov dword [esp + 0x34], edx
lea edi, [eax + ecx*4]
mov dword [esp + 0x18], edi
nop word [eax + eax]
mov eax, dword [ebx]
xor edx, edx
mov ecx, dword [esi]
test eax, eax
cmovns edx, eax
mov eax, ecx
sar eax, 0x10
mov dword [esp + 0x24], edx
cmp eax, dword [esp + 0x1c]
jl 0x10199152
mov ecx, dword [esp + 0x1c]
shl ecx, 0x10
dec ecx
cmp ecx, edx
jle 0x10199311
mov eax, edx
mov edi, ecx
sar eax, 0x10
mov ebp, eax
mov dword [esp + 0x28], eax
and eax, 1
movzx ecx, cx
mov dword [esp + 0x14], eax
add ecx, 0x199a
mov eax, 0xa000a001
sar ebp, 1
mul ecx
mov al, byte [esp + 0x14]
add ebp, dword [esp + 0x18]
shl al, 2
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x3c]
shr edx, 0xd
mov dword [esp + 0x30], edx
push 1
mov ecx, dword [eax + 0xa8]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
movzx ecx, ax
mov eax, 0xa000a001
add ecx, 0x199a
sar edi, 0x10
mul ecx
push ebp
shr edx, 0xd
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], edx
call dword [esp + 0x28]
mov cl, byte [esp + 0x1b]
mov dl, al
shr dl, cl
mov ecx, dword [esp + 0x1c]
and dl, 0xf
sub dl, byte [esp + 0x2c]
shl ecx, 2
push 1
movzx eax, al
cmp dword [esp + 0x34], edi
je 0x101992d6
add dl, 5
movzx edx, dl
mov edi, edx
shr edi, 4
neg edi
or edi, edx
mov edx, 0xf
shl edx, cl
and edi, 0xf
not edx
shl edi, cl
and edx, eax
or edi, edx
push edi
mov edi, dword [esp + 0x4c]
push ebp
mov eax, dword [edi + 0xac]
call eax
mov eax, dword [esp + 0x28]
add esp, 0x14
add ebp, eax
xor eax, 1
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
inc eax
cmp eax, dword [esp + 0x2c]
jge 0x101992b1
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
sub esi, eax
mov eax, dword [edi + 0xa8]
push 1
push ebp
call eax
mov dl, al
mov cl, bl
shl cl, 2
shr dl, cl
lea ecx, [ebx*4]
and dl, 0xf
movzx eax, al
add dl, 5
movzx edx, dl
mov edi, edx
shr edi, 4
neg edi
or edi, edx
mov edx, 0xf
shl edx, cl
and edi, 0xf
not edx
shl edi, cl
and edx, eax
or edi, edx
push 1
push edi
mov edi, dword [esp + 0x4c]
push ebp
mov eax, dword [edi + 0xac]
call eax
add ebp, ebx
add esp, 0x14
xor ebx, 1
sub esi, 1
jne 0x10199246
mov esi, dword [esp + 0x44]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x40]
mov eax, dword [edi + 0xa8]
push 1
push ebp
call eax
mov ecx, dword [esp + 0x1c]
mov dl, al
shl cl, 2
shr dl, cl
mov ecx, dword [esp + 0x1c]
and dl, 0xf
shl ecx, 2
push 1
movzx eax, al
add dl, byte [esp + 0x3c]
movzx edx, dl
mov edi, edx
shr edi, 4
neg edi
or edi, edx
mov edx, 0xf
shl edx, cl
and edi, 0xf
not edx
shl edi, cl
and edx, eax
mov eax, dword [esp + 0x48]
or edi, edx
push edi
push ebp
mov eax, dword [eax + 0xac]
call eax
mov edi, dword [esp + 0x2c]
add esp, 0x14
mov ebp, dword [esp + 0x48]
cmp ebp, dword [esp + 0x4c]
je 0x101993d0
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
cmp bp, 0xd555
je 0x10199376
mov eax, dword [ebx + 0x20]
add ecx, dword [ebx + 0x18]
add eax, edx
mov dword [ebx], ecx
mov dword [ebx + 4], eax
test eax, eax
jle 0x10199345
sub eax, dword [ebx + 0x10]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0xc]
add eax, ecx
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov edx, dword [esi + 0x18]
add eax, dword [esi + 0x20]
add edx, dword [esi]
mov dword [esi], edx
mov dword [esi + 4], eax
test eax, eax
jle 0x10199366
sub eax, dword [esi + 0x10]
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc]
add eax, edx
mov dword [esi], eax
mov eax, 0x5555
add ebp, eax
mov dword [esp + 0x48], ebp
jmp 0x10199130
mov eax, dword [ebx + 0x24]
add ecx, dword [ebx + 0x1c]
add eax, edx
mov dword [ebx], ecx
mov dword [ebx + 4], eax
test eax, eax
jle 0x10199394
sub eax, dword [ebx + 0x10]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0xc]
add eax, ecx
mov dword [ebx], eax
mov eax, dword [esi + 4]
mov edx, dword [esi + 0x1c]
add eax, dword [esi + 0x24]
add edx, dword [esi]
mov dword [esi], edx
mov dword [esi + 4], eax
test eax, eax
jle 0x101993b5
sub eax, dword [esi + 0x10]
mov dword [esi + 4], eax
mov eax, dword [esi + 0xc]
add eax, edx
mov dword [esi], eax
mov eax, dword [esp + 0x34]
lea edi, [edi + eax*4]
mov eax, 0x5556
add ebp, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x48], ebp
jmp 0x10199130
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
sub esp, 0x28
mov ecx, dword [esp + 0x38]
xor eax, eax
push ebx
mov ebx, dword [esp + 0x30]
push ebp
or ebp, 0xffffffff
mov dword [esp + 8], eax
push esi
mov edx, dword [ebx + 0x80]
or esi, ebp
mov eax, dword [ebx + 0x70]
sar ecx, 0x10
mov dword [esp + 0x30], edx
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x78]
imul ecx, edx
mov edx, dword [esp + 0x40]
push edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], esi
lea eax, [eax + ecx*4]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x40]
xor edi, edi
mov eax, dword [ecx]
test eax, eax
cmovns edi, eax
mov dword [esp + 0x28], edi
mov edi, dword [edx]
mov eax, edi
sar eax, 0x10
cmp eax, dword [esp + 0x24]
jl 0x1019944d
mov edi, dword [esp + 0x24]
shl edi, 0x10
dec edi
mov eax, dword [esp + 0x28]
cmp edi, eax
jle 0x101997ee
sar eax, 0x10
mov dword [esp + 0x20], eax
mov eax, edi
sar eax, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
movzx ecx, ax
mov eax, 0x88008801
add ecx, 0x788
mul ecx
movzx ecx, di
mov eax, 0x88008801
mov edi, dword [esp + 0x20]
add ecx, 0x788
shr edx, 0xb
mov dword [esp + 0x28], edx
mul ecx
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebx + 0xa8]
add eax, edi
shr edx, 0xb
push 1
push eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x28], eax
call ecx
push 1
cmp edi, dword [esp + 0x20]
jne 0x101994e3
mov ecx, dword [esp + 0x38]
sub ecx, dword [esp + 0x34]
add eax, ecx
movzx ecx, al
cmp eax, 0xff
mov eax, 0xff
cmovg ecx, eax
movzx eax, cl
push eax
push dword [esp + 0x30]
jmp 0x101997db
mov ecx, 0x11
sub ecx, dword [esp + 0x34]
add eax, ecx
movzx ecx, al
cmp eax, 0xff
mov eax, 0xff
cmovg ecx, eax
movzx eax, cl
push eax
push dword [esp + 0x30]
mov eax, dword [ebx + 0xac]
call eax
mov edx, dword [esp + 0x28]
inc edi
mov eax, edx
mov dword [esp + 0x34], edi
sub eax, edi
add esp, 0x14
mov dword [esp + 0x30], eax
cmp eax, 4
jle 0x10199761
test ebp, ebp
jns 0x10199544
inc dword [esp + 0x10]
mov ebp, edi
mov esi, edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], esi
jmp 0x101997af
cmp edi, esi
jge 0x101996f8
cmp edx, ebp
jl 0x101996f8
cmp edi, ebp
jle 0x101995cc
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x10]
add eax, ebp
mov dword [esp + 0x28], eax
mov eax, edi
shl ecx, 4
add ecx, dword [esp + 0x10]
sub eax, ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], eax
je 0x101995c4
mov ebp, dword [esp + 0x28]
mov edi, eax
mov esi, ecx
mov eax, dword [ebx + 0xa8]
push 1
push ebp
call eax
add eax, esi
movzx ecx, al
cmp eax, 0xff
mov eax, 0xff
cmovg ecx, eax
movzx eax, cl
push 1
push eax
mov eax, dword [ebx + 0xac]
push ebp
call eax
add esp, 0x14
inc ebp
sub edi, 1
jne 0x10199583
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov ebp, edi
mov dword [esp + 0x1c], ebp
jmp 0x1019962d
jge 0x1019962d
mov ecx, dword [esp + 0x3c]
lea eax, [edi + ecx]
mov dword [esp + 0x30], eax
mov eax, ebp
sub eax, edi
mov dword [esp + 0x28], eax
je 0x10199631
mov edi, dword [esp + 0x30]
mov ebp, eax
mov esi, 0xff
nop
mov eax, dword [ebx + 0xa8]
push 1
push edi
call eax
add eax, 0x11
cmp eax, 0xff
movzx ecx, al
push 1
cmovg ecx, esi
movzx eax, cl
push eax
mov eax, dword [ebx + 0xac]
push edi
call eax
add esp, 0x14
inc edi
sub ebp, 1
jne 0x101995f0
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
cmp edx, esi
jge 0x1019969c
lea edi, [edx + ecx]
mov ecx, dword [esp + 0x10]
shl ecx, 4
add ecx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
sub esi, edx
je 0x1019968d
mov ebp, ecx
nop dword [eax]
mov eax, dword [ebx + 0xa8]
push 1
push edi
call eax
add eax, ebp
movzx ecx, al
cmp eax, 0xff
mov eax, 0xff
cmovg ecx, eax
movzx eax, cl
push 1
push eax
mov eax, dword [ebx + 0xac]
push edi
call eax
add esp, 0x14
inc edi
sub esi, 1
jne 0x10199650
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
inc dword [esp + 0x10]
mov esi, edx
mov dword [esp + 0x18], esi
jmp 0x101997af
jle 0x101996ef
mov eax, edx
lea edi, [ecx + esi]
sub eax, esi
mov dword [esp + 0x30], eax
je 0x101996ef
mov ebp, eax
mov esi, 0xff
mov eax, dword [ebx + 0xa8]
push 1
push edi
call eax
add eax, 0x11
cmp eax, 0xff
movzx ecx, al
push 1
cmovg ecx, esi
movzx eax, cl
push eax
mov eax, dword [ebx + 0xac]
push edi
call eax
add esp, 0x14
inc edi
sub ebp, 1
jne 0x101996b2
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
inc dword [esp + 0x10]
jmp 0x101997af
mov edi, dword [esp + 0x3c]
sub esi, ebp
add edi, ebp
mov ebp, dword [esp + 0x10]
shl ebp, 4
add ebp, dword [esp + 0x10]
test esi, esi
je 0x10199749
nop
mov eax, dword [ebx + 0xa8]
push 1
push edi
call eax
add eax, ebp
movzx ecx, al
cmp eax, 0xff
mov eax, 0xff
cmovg ecx, eax
movzx eax, cl
push 1
push eax
mov eax, dword [ebx + 0xac]
push edi
call eax
add esp, 0x14
inc edi
sub esi, 1
jne 0x10199710
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
mov esi, edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], 1
jmp 0x101997af
add edi, dword [esp + 0x3c]
test eax, eax
je 0x101997af
mov ebp, dword [esp + 0x30]
mov esi, 0xff
mov eax, dword [ebx + 0xa8]
push 1
push edi
call eax
add eax, 0x11
cmp eax, 0xff
movzx ecx, al
push 1
cmovg ecx, esi
movzx eax, cl
push eax
mov eax, dword [ebx + 0xac]
push edi
call eax
add esp, 0x14
inc edi
sub ebp, 1
jne 0x10199772
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x3c]
mov eax, dword [ebx + 0xa8]
add edi, edx
push 1
push edi
call eax
add eax, dword [esp + 0x34]
movzx ecx, al
cmp eax, 0xff
mov eax, 0xff
cmovg ecx, eax
push 1
movzx eax, cl
push eax
push edi
mov eax, dword [ebx + 0xac]
call eax
mov ecx, dword [esp + 0x54]
add esp, 0x14
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
cmp dword [esp + 0x48], eax
je 0x1019995b
mov eax, dword [esp + 0x48]
mov edi, dword [ecx]
cmp ax, 0xf777
je 0x1019985d
mov eax, dword [ecx + 0x18]
add eax, edi
mov dword [esp + 0x30], eax
mov dword [ecx], eax
mov eax, dword [ecx + 0x20]
add eax, dword [ecx + 4]
mov dword [ecx + 4], eax
test eax, eax
jle 0x1019982f
sub eax, dword [ecx + 0x10]
mov dword [ecx + 4], eax
mov eax, dword [ecx + 0xc]
add eax, dword [esp + 0x30]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x18]
add eax, dword [edx + 0x20]
add edi, dword [edx]
mov dword [edx], edi
mov dword [edx + 4], eax
test eax, eax
jle 0x10199850
sub eax, dword [edx + 0x10]
mov dword [edx + 4], eax
mov eax, dword [edx + 0xc]
add eax, edi
mov dword [edx], eax
add dword [esp + 0x48], 0x1111
jmp 0x10199427
mov eax, dword [ecx + 0x1c]
add eax, edi
mov dword [esp + 0x30], eax
mov dword [ecx], eax
mov eax, dword [ecx + 0x24]
add eax, dword [ecx + 4]
mov dword [ecx + 4], eax
test eax, eax
jle 0x10199884
sub eax, dword [ecx + 0x10]
mov dword [ecx + 4], eax
mov eax, dword [ecx + 0xc]
add eax, dword [esp + 0x30]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x1c]
add eax, dword [edx + 0x24]
add edi, dword [edx]
mov dword [edx], edi
mov dword [edx + 4], eax
test eax, eax
jle 0x101998a5
sub eax, dword [edx + 0x10]
mov dword [edx + 4], eax
mov eax, dword [edx + 0xc]
add eax, edi
mov dword [edx], eax
add dword [esp + 0x48], 0x1112
cmp ebp, esi
je 0x1019994e
mov eax, dword [esp + 0x10]
sub esi, ebp
add ebp, dword [esp + 0x3c]
cmp eax, 0xf
jne 0x101998ed
xor edi, edi
test esi, esi
je 0x10199939
nop word [eax + eax]
push 1
lea eax, [edi + ebp]
push 0xff
push eax
mov eax, dword [ebx + 0xac]
call eax
inc edi
add esp, 0xc
cmp edi, esi
jb 0x101998d0
jmp 0x10199935
mov edi, eax
shl edi, 4
add edi, eax
test esi, esi
je 0x10199939
nop dword [eax + eax]
mov eax, dword [ebx + 0xa8]
push 1
push ebp
call eax
add eax, edi
movzx ecx, al
cmp eax, 0xff
mov eax, 0xff
cmovg ecx, eax
movzx eax, cl
push 1
push eax
mov eax, dword [ebx + 0xac]
push ebp
call eax
add esp, 0x14
inc ebp
sub esi, 1
jne 0x10199900
mov edx, dword [esp + 0x44]
or esi, 0xffffffff
mov dword [esp + 0x10], 0
or ebp, esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
jmp 0x10199420
cmp ebp, esi
je 0x101999e5
mov eax, dword [esp + 0x10]
sub esi, ebp
add ebp, dword [esp + 0x3c]
cmp eax, 0xf
jne 0x101999a3
xor edi, edi
test esi, esi
je 0x101999e5
nop dword [eax + eax]
push 1
lea eax, [edi + ebp]
push 0xff
push eax
mov eax, dword [ebx + 0xac]
call eax
inc edi
add esp, 0xc
cmp edi, esi
jb 0x10199980
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov edi, eax
shl edi, 4
add edi, eax
test esi, esi
je 0x101999e5
nop
mov eax, dword [ebx + 0xa8]
push 1
push ebp
call eax
add eax, edi
movzx ecx, al
cmp eax, 0xff
mov eax, 0xff
cmovg ecx, eax
movzx eax, cl
push 1
push eax
mov eax, dword [ebx + 0xac]
push ebp
call eax
add esp, 0x14
inc ebp
sub esi, 1
jne 0x101999b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret