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

Disassembly:
mov edx, dword [esp + 4]
cmp dword [edx], 0
je 0x10184d1c
push str.The_expression_image__type__BITS_was_false
push 0x10287da4
call fcn.10180080
add esp, 8
ret
mov ecx, dword [edx + 0x68]
mov eax, ecx
and eax, 0x3f0000
cmp eax, 0x10000
je 0x10184d40
push str.The_expression_PIXMAN_FORMAT_TYPE__image__bits.format___PIXMAN_TYPE_A_was_false
push 0x10287da4
call fcn.10180080
add esp, 8
ret
cmp dword [edx + 0xa8], 0
jne 0x10184d8c
cmp dword [edx + 0xac], 0
jne 0x10184d8c
mov eax, ecx
sar ecx, 0x16
sar eax, 0x18
and ecx, 3
movzx eax, al
shl eax, cl
sub eax, 1
je 0x10184d83
sub eax, 3
je 0x10184d7a
sub eax, 4
jne 0x10184d1b
mov dword [esp + 4], edx
jmp 0x101851b0
mov dword [esp + 4], edx
jmp 0x10184f20
mov dword [esp + 4], edx
jmp 0x10184da0
mov dword [esp + 4], edx
jmp 0x101a25d0
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 0x10184eb0
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 0x10184e4b
mov ecx, edx
or edx, 0xffffffff
neg ecx
and ecx, 0x1f
shr edx, cl
mov dword [esp + 0x24], edx
jmp 0x10184e57
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 0x10184e7d
mov eax, dword [esp + 0x2c]
add eax, 0xffffffe0
jns 0x10184e7d
and ecx, dword [esp + 0x24]
xor eax, eax
xor edx, edx
mov dword [esp + 0x24], edx
sar eax, 5
test ecx, ecx
je 0x10184e89
or dword [esi], ecx
add esi, 4
test eax, eax
je 0x10184ea2
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 0x10184eac
or dword [esi], eax
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x30]
cmp edi, dword [esp + 0x34]
je 0x10184f15
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 0x10184ede
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 0x10184eff
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 0x10184ddd
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 0x10184f76
mov ecx, ebp
shl ecx, 0x10
dec ecx
cmp ecx, edx
jle 0x101850d6
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 0x10185027
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 0x101850cf
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 0x1018509f
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 0x10185058
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 0x101851a1
mov ecx, dword [edi]
mov ebx, dword [edi + 4]
cmp dx, 0xd555
je 0x10185143
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 0x1018510e
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 0x1018512f
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 0x10184f58
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 0x10185161
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 0x10185182
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 0x10184f58
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 0x1018521d
mov esi, dword [esp + 0x20]
shl esi, 0x10
dec esi
mov eax, dword [esp + 0x24]
cmp esi, eax
jle 0x101854df
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 0x1018529d
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 0x101854d7
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 0x1018547e
test ebx, ebx
jns 0x101852ea
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 0x101854b4
cmp ebp, ecx
jge 0x1018542a
cmp eax, ebx
jl 0x1018542a
cmp ebp, ebx
jle 0x101853b3
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 0x10185347
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 0x10185324
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 0x101853f0
mov ebp, dword [esp + 0x10]
lea esi, [eax + edx]
mov edi, ebp
shl edi, 4
add edi, ebp
sub ecx, eax
je 0x101853a3
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 0x10185380
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 0x101854b4
mov edx, dword [esp + 0x34]
jge 0x10185355
mov edi, ebx
lea esi, [edx + ebp]
sub edi, ebp
je 0x10185355
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 0x101853c7
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
jmp 0x1018535a
jle 0x1018541c
mov edi, eax
lea esi, [edx + ecx]
sub edi, ecx
je 0x1018541c
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 0x10185400
mov ebp, dword [esp + 0x10]
inc ebp
mov dword [esp + 0x10], ebp
jmp 0x101854b4
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 0x10185463
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 0x10185444
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 0x101854b8
mov esi, dword [esp + 0x34]
add esi, ebp
test edi, edi
je 0x101854b0
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 0x10185490
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 0x10185614
mov eax, dword [esp + 0x40]
mov esi, dword [edx]
cmp ax, 0xf777
je 0x1018554e
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 0x10185520
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 0x10185541
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 0x101851f7
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 0x10185575
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 0x10185596
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 0x10185607
mov esi, dword [esp + 0x34]
sub ecx, ebx
add esi, ebx
cmp ebp, 0xf
jne 0x101855c0
push ecx
push 0xff
push esi
call fcn.101f69f0
add esp, 0xc
jmp 0x101855f4
mov edi, ebp
shl edi, 4
add edi, ebp
test ecx, ecx
je 0x101855f0
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 0x101855d0
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 0x101851f0
cmp ebx, ecx
je 0x10185667
mov esi, dword [esp + 0x34]
sub ecx, ebx
add esi, ebx
cmp ebp, 0xf
jne 0x1018563c
push ecx
push 0xff
push esi
call fcn.101f69f0
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 0x10185667
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 0x10185647
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 0x101a2608
sub eax, 3
je 0x101a25ff
sub eax, 4
jne 0x101a2611
mov dword [esp + 4], edx
jmp 0x101a2af0
mov dword [esp + 4], edx
jmp 0x101a2800
mov dword [esp + 4], edx
jmp 0x101a2620
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 0x101a2783
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 0x101a26cc
neg ecx
or eax, 0xffffffff
and ecx, 0x1f
shr eax, cl
mov dword [esp + 0x30], eax
jmp 0x101a26d8
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 0x101a26fc
mov esi, dword [esp + 0x14]
add esi, 0xffffffe0
jns 0x101a26fc
xor esi, esi
and ebx, dword [esp + 0x30]
mov dword [esp + 0x30], esi
sar esi, 5
test ebx, ebx
je 0x101a272f
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 0x101a2733
mov ebx, dword [esp + 0x28]
test esi, esi
je 0x101a2758
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 0x101a2740
mov esi, dword [esp + 0x30]
test esi, esi
je 0x101a277f
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 0x101a27ed
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 0x101a27ae
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 0x101a27d2
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 0x101a265a
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 0x101a2862
mov ecx, dword [esp + 0x1c]
shl ecx, 0x10
dec ecx
cmp ecx, edx
jle 0x101a2a21
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 0x101a29e6
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 0x101a29c1
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 0x101a2956
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 0x101a2ae0
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
cmp bp, 0xd555
je 0x101a2a86
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 0x101a2a55
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 0x101a2a76
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 0x101a2840
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 0x101a2aa4
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 0x101a2ac5
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 0x101a2840
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 0x101a2b5d
mov edi, dword [esp + 0x24]
shl edi, 0x10
dec edi
mov eax, dword [esp + 0x28]
cmp edi, eax
jle 0x101a2efe
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 0x101a2bf3
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 0x101a2eeb
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 0x101a2e71
test ebp, ebp
jns 0x101a2c54
inc dword [esp + 0x10]
mov ebp, edi
mov esi, edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], esi
jmp 0x101a2ebf
cmp edi, esi
jge 0x101a2e08
cmp edx, ebp
jl 0x101a2e08
cmp edi, ebp
jle 0x101a2cdc
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 0x101a2cd4
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 0x101a2c93
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov ebp, edi
mov dword [esp + 0x1c], ebp
jmp 0x101a2d3d
jge 0x101a2d3d
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 0x101a2d41
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 0x101a2d00
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
cmp edx, esi
jge 0x101a2dac
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 0x101a2d9d
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 0x101a2d60
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
inc dword [esp + 0x10]
mov esi, edx
mov dword [esp + 0x18], esi
jmp 0x101a2ebf
jle 0x101a2dff
mov eax, edx
lea edi, [ecx + esi]
sub eax, esi
mov dword [esp + 0x30], eax
je 0x101a2dff
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 0x101a2dc2
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
inc dword [esp + 0x10]
jmp 0x101a2ebf
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 0x101a2e59
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 0x101a2e20
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 0x101a2ebf
add edi, dword [esp + 0x3c]
test eax, eax
je 0x101a2ebf
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 0x101a2e82
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 0x101a306b
mov eax, dword [esp + 0x48]
mov edi, dword [ecx]
cmp ax, 0xf777
je 0x101a2f6d
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 0x101a2f3f
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 0x101a2f60
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 0x101a2b37
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 0x101a2f94
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 0x101a2fb5
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 0x101a305e
mov eax, dword [esp + 0x10]
sub esi, ebp
add ebp, dword [esp + 0x3c]
cmp eax, 0xf
jne 0x101a2ffd
xor edi, edi
test esi, esi
je 0x101a3049
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 0x101a2fe0
jmp 0x101a3045
mov edi, eax
shl edi, 4
add edi, eax
test esi, esi
je 0x101a3049
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 0x101a3010
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 0x101a2b30
cmp ebp, esi
je 0x101a30f5
mov eax, dword [esp + 0x10]
sub esi, ebp
add ebp, dword [esp + 0x3c]
cmp eax, 0xf
jne 0x101a30b3
xor edi, edi
test esi, esi
je 0x101a30f5
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 0x101a3090
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 0x101a30f5
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 0x101a30c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret