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

Disassembly:
mov edx, dword [esp + 4]
cmp dword [edx], 0
je 0x101e1ecc
push str.The_expression_image__type__BITS_was_false
push 0x102df5d4
call fcn.101dce50
add esp, 8
ret
mov ecx, dword [edx + 0x68]
mov eax, ecx
and eax, 0x3f0000
cmp eax, 0x10000
je 0x101e1ef0
push str.The_expression_PIXMAN_FORMAT_TYPE__image__bits.format___PIXMAN_TYPE_A_was_false
push 0x102df5d4
call fcn.101dce50
add esp, 8
ret
cmp dword [edx + 0xa8], 0
jne 0x101e1f3c
cmp dword [edx + 0xac], 0
jne 0x101e1f3c
mov eax, ecx
sar ecx, 0x16
sar eax, 0x18
and ecx, 3
movzx eax, al
shl eax, cl
sub eax, 1
je 0x101e1f33
sub eax, 3
je 0x101e1f2a
sub eax, 4
jne 0x101e1ecb
mov dword [esp + 4], edx
jmp 0x101e2360
mov dword [esp + 4], edx
jmp 0x101e20d0
mov dword [esp + 4], edx
jmp 0x101e1f50
mov dword [esp + 4], edx
jmp 0x101fc6a0
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 0x101e2060
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 0x101e1ffb
mov ecx, edx
or edx, 0xffffffff
neg ecx
and ecx, 0x1f
shr edx, cl
mov dword [esp + 0x24], edx
jmp 0x101e2007
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 0x101e202d
mov eax, dword [esp + 0x2c]
add eax, 0xffffffe0
jns 0x101e202d
and ecx, dword [esp + 0x24]
xor eax, eax
xor edx, edx
mov dword [esp + 0x24], edx
sar eax, 5
test ecx, ecx
je 0x101e2039
or dword [esi], ecx
add esi, 4
test eax, eax
je 0x101e2052
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 0x101e205c
or dword [esi], eax
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x30]
cmp edi, dword [esp + 0x34]
je 0x101e20c5
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 0x101e208e
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 0x101e20af
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 0x101e1f8d
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 0x101e2126
mov ecx, ebp
shl ecx, 0x10
dec ecx
cmp ecx, edx
jle 0x101e2286
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 0x101e21d7
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 0x101e227f
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 0x101e224f
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 0x101e2208
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 0x101e2351
mov ecx, dword [edi]
mov ebx, dword [edi + 4]
cmp dx, 0xd555
je 0x101e22f3
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 0x101e22be
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 0x101e22df
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 0x101e2108
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 0x101e2311
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 0x101e2332
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 0x101e2108
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 0x101e23cd
mov esi, dword [esp + 0x20]
shl esi, 0x10
dec esi
mov eax, dword [esp + 0x24]
cmp esi, eax
jle 0x101e268f
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 0x101e244d
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 0x101e2687
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 0x101e262e
test ebx, ebx
jns 0x101e249a
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 0x101e2664
cmp ebp, ecx
jge 0x101e25da
cmp eax, ebx
jl 0x101e25da
cmp ebp, ebx
jle 0x101e2563
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 0x101e24f7
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 0x101e24d4
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 0x101e25a0
mov ebp, dword [esp + 0x10]
lea esi, [eax + edx]
mov edi, ebp
shl edi, 4
add edi, ebp
sub ecx, eax
je 0x101e2553
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 0x101e2530
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 0x101e2664
mov edx, dword [esp + 0x34]
jge 0x101e2505
mov edi, ebx
lea esi, [edx + ebp]
sub edi, ebp
je 0x101e2505
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 0x101e2577
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
jmp 0x101e250a
jle 0x101e25cc
mov edi, eax
lea esi, [edx + ecx]
sub edi, ecx
je 0x101e25cc
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 0x101e25b0
mov ebp, dword [esp + 0x10]
inc ebp
mov dword [esp + 0x10], ebp
jmp 0x101e2664
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 0x101e2613
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 0x101e25f4
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 0x101e2668
mov esi, dword [esp + 0x34]
add esi, ebp
test edi, edi
je 0x101e2660
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 0x101e2640
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 0x101e27c4
mov eax, dword [esp + 0x40]
mov esi, dword [edx]
cmp ax, 0xf777
je 0x101e26fe
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 0x101e26d0
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 0x101e26f1
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 0x101e23a7
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 0x101e2725
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 0x101e2746
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 0x101e27b7
mov esi, dword [esp + 0x34]
sub ecx, ebx
add esi, ebx
cmp ebp, 0xf
jne 0x101e2770
push ecx
push 0xff
push esi
call fcn.102667b0
add esp, 0xc
jmp 0x101e27a4
mov edi, ebp
shl edi, 4
add edi, ebp
test ecx, ecx
je 0x101e27a0
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 0x101e2780
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 0x101e23a0
cmp ebx, ecx
je 0x101e2817
mov esi, dword [esp + 0x34]
sub ecx, ebx
add esi, ebx
cmp ebp, 0xf
jne 0x101e27ec
push ecx
push 0xff
push esi
call fcn.102667b0
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 0x101e2817
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 0x101e27f7
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 0x101fc6d8
sub eax, 3
je 0x101fc6cf
sub eax, 4
jne 0x101fc6e1
mov dword [esp + 4], edx
jmp 0x101fcbc0
mov dword [esp + 4], edx
jmp 0x101fc8d0
mov dword [esp + 4], edx
jmp 0x101fc6f0
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 0x101fc853
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 0x101fc79c
neg ecx
or eax, 0xffffffff
and ecx, 0x1f
shr eax, cl
mov dword [esp + 0x30], eax
jmp 0x101fc7a8
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 0x101fc7cc
mov esi, dword [esp + 0x14]
add esi, 0xffffffe0
jns 0x101fc7cc
xor esi, esi
and ebx, dword [esp + 0x30]
mov dword [esp + 0x30], esi
sar esi, 5
test ebx, ebx
je 0x101fc7ff
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 0x101fc803
mov ebx, dword [esp + 0x28]
test esi, esi
je 0x101fc828
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 0x101fc810
mov esi, dword [esp + 0x30]
test esi, esi
je 0x101fc84f
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 0x101fc8bd
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 0x101fc87e
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 0x101fc8a2
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 0x101fc72a
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 0x101fc932
mov ecx, dword [esp + 0x1c]
shl ecx, 0x10
dec ecx
cmp ecx, edx
jle 0x101fcaf1
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 0x101fcab6
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 0x101fca91
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 0x101fca26
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 0x101fcbb0
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
cmp bp, 0xd555
je 0x101fcb56
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 0x101fcb25
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 0x101fcb46
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 0x101fc910
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 0x101fcb74
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 0x101fcb95
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 0x101fc910
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 0x101fcc2d
mov edi, dword [esp + 0x24]
shl edi, 0x10
dec edi
mov eax, dword [esp + 0x28]
cmp edi, eax
jle 0x101fcfce
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 0x101fccc3
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 0x101fcfbb
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 0x101fcf41
test ebp, ebp
jns 0x101fcd24
inc dword [esp + 0x10]
mov ebp, edi
mov esi, edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], esi
jmp 0x101fcf8f
cmp edi, esi
jge 0x101fced8
cmp edx, ebp
jl 0x101fced8
cmp edi, ebp
jle 0x101fcdac
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 0x101fcda4
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 0x101fcd63
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov ebp, edi
mov dword [esp + 0x1c], ebp
jmp 0x101fce0d
jge 0x101fce0d
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 0x101fce11
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 0x101fcdd0
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
cmp edx, esi
jge 0x101fce7c
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 0x101fce6d
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 0x101fce30
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
inc dword [esp + 0x10]
mov esi, edx
mov dword [esp + 0x18], esi
jmp 0x101fcf8f
jle 0x101fcecf
mov eax, edx
lea edi, [ecx + esi]
sub eax, esi
mov dword [esp + 0x30], eax
je 0x101fcecf
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 0x101fce92
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
inc dword [esp + 0x10]
jmp 0x101fcf8f
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 0x101fcf29
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 0x101fcef0
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 0x101fcf8f
add edi, dword [esp + 0x3c]
test eax, eax
je 0x101fcf8f
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 0x101fcf52
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 0x101fd13b
mov eax, dword [esp + 0x48]
mov edi, dword [ecx]
cmp ax, 0xf777
je 0x101fd03d
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 0x101fd00f
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 0x101fd030
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 0x101fcc07
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 0x101fd064
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 0x101fd085
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 0x101fd12e
mov eax, dword [esp + 0x10]
sub esi, ebp
add ebp, dword [esp + 0x3c]
cmp eax, 0xf
jne 0x101fd0cd
xor edi, edi
test esi, esi
je 0x101fd119
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 0x101fd0b0
jmp 0x101fd115
mov edi, eax
shl edi, 4
add edi, eax
test esi, esi
je 0x101fd119
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 0x101fd0e0
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 0x101fcc00
cmp ebp, esi
je 0x101fd1c5
mov eax, dword [esp + 0x10]
sub esi, ebp
add ebp, dword [esp + 0x3c]
cmp eax, 0xf
jne 0x101fd183
xor edi, edi
test esi, esi
je 0x101fd1c5
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 0x101fd160
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 0x101fd1c5
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 0x101fd190
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret