877ff0:	85 d2                	test   %edx,%edx
877ff2:	75 04                	jne    0x877ff8
877ff4:	33 c0                	xor    %eax,%eax
877ff6:	eb 03                	jmp    0x877ffb
877ff8:	8b 42 20             	mov    0x20(%edx),%eax
877ffb:	89 81 88 00 00 00    	mov    %eax,0x88(%ecx)
878001:	85 d2                	test   %edx,%edx
878003:	74 09                	je     0x87800e
878005:	8b 41 20             	mov    0x20(%ecx),%eax
878008:	89 82 60 01 00 00    	mov    %eax,0x160(%edx)
87800e:	5d                   	pop    %ebp
87800f:	c2 04 00             	ret    $0x4
878012:	cc                   	int3
878013:	cc                   	int3
878014:	cc                   	int3
878015:	cc                   	int3
878016:	cc                   	int3
878017:	cc                   	int3
878018:	cc                   	int3
878019:	cc                   	int3
87801a:	cc                   	int3
87801b:	cc                   	int3
87801c:	55                   	push   %ebp
87801d:	8b ec                	mov    %esp,%ebp
87801f:	ff 75 08             	push   0x8(%ebp)
878022:	6a 00                	push   $0x0
878024:	68 15 11 00 00       	push   $0x1115
878029:	ff 71 20             	push   0x20(%ecx)
87802c:	ff 15 20 40 d8 00    	call   *0xd84020
878032:	5d                   	pop    %ebp
878033:	c2 04 00             	ret    $0x4
878036:	cc                   	int3
878037:	cc                   	int3
878038:	cc                   	int3
878039:	cc                   	int3
87803a:	cc                   	int3
87803b:	cc                   	int3
87803c:	55                   	push   %ebp
87803d:	8b ec                	mov    %esp,%ebp
87803f:	8b 45 08             	mov    0x8(%ebp),%eax
878042:	8b d1                	mov    %ecx,%edx
878044:	83 f8 2b             	cmp    $0x2b,%eax
878047:	72 31                	jb     0x87807a
878049:	83 f8 2c             	cmp    $0x2c,%eax
87804c:	76 07                	jbe    0x878055
87804e:	3d 17 01 00 00       	cmp    $0x117,%eax
878053:	75 25                	jne    0x87807a
878055:	8b 0d b0 cd d7 00    	mov    0xd7cdb0,%ecx
87805b:	85 c9                	test   %ecx,%ecx
87805d:	74 1b                	je     0x87807a
87805f:	56                   	push   %esi
878060:	ff 75 10             	push   0x10(%ebp)
878063:	8b 31                	mov    (%ecx),%esi
878065:	ff 75 0c             	push   0xc(%ebp)
878068:	50                   	push   %eax
878069:	51                   	push   %ecx
87806a:	8b 4e 18             	mov    0x18(%esi),%ecx
87806d:	e8 f3 45 bb ff       	call   0x42c665
878072:	ff 56 18             	call   *0x18(%esi)
878075:	33 c0                	xor    %eax,%eax
878077:	5e                   	pop    %esi
878078:	eb 0e                	jmp    0x878088
87807a:	ff 75 10             	push   0x10(%ebp)
87807d:	8b ca                	mov    %edx,%ecx
87807f:	ff 75 0c             	push   0xc(%ebp)
878082:	50                   	push   %eax
878083:	e8 18 17 b9 ff       	call   0x4097a0
878088:	5d                   	pop    %ebp
878089:	c2 0c 00             	ret    $0xc
87808c:	cc                   	int3
87808d:	cc                   	int3
87808e:	cc                   	int3
87808f:	cc                   	int3
878090:	cc                   	int3
878091:	cc                   	int3
878092:	cc                   	int3
878093:	cc                   	int3
878094:	cc                   	int3
878095:	cc                   	int3
878096:	cc                   	int3
878097:	cc                   	int3
878098:	cc                   	int3
878099:	cc                   	int3
87809a:	cc                   	int3
87809b:	cc                   	int3
87809c:	cc                   	int3
87809d:	cc                   	int3
87809e:	cc                   	int3
87809f:	cc                   	int3
8780a0:	55                   	push   %ebp
8780a1:	8b ec                	mov    %esp,%ebp
8780a3:	56                   	push   %esi
8780a4:	8b 75 14             	mov    0x14(%ebp),%esi
8780a7:	85 f6                	test   %esi,%esi
8780a9:	75 04                	jne    0x8780af
8780ab:	33 c0                	xor    %eax,%eax
8780ad:	eb 6d                	jmp    0x87811c
8780af:	8b 45 08             	mov    0x8(%ebp),%eax
8780b2:	85 c0                	test   %eax,%eax
8780b4:	75 13                	jne    0x8780c9
8780b6:	e8 b4 67 bc ff       	call   0x43e86f
8780bb:	6a 16                	push   $0x16
8780bd:	5e                   	pop    %esi
8780be:	89 30                	mov    %esi,(%eax)
8780c0:	e8 33 72 ba ff       	call   0x41f2f8
8780c5:	8b c6                	mov    %esi,%eax
8780c7:	eb 53                	jmp    0x87811c
8780c9:	57                   	push   %edi
8780ca:	8b 7d 10             	mov    0x10(%ebp),%edi
8780cd:	85 ff                	test   %edi,%edi
8780cf:	74 14                	je     0x8780e5
8780d1:	39 75 0c             	cmp    %esi,0xc(%ebp)
8780d4:	72 0f                	jb     0x8780e5
8780d6:	56                   	push   %esi
8780d7:	57                   	push   %edi
8780d8:	50                   	push   %eax
8780d9:	e8 a4 c5 b9 ff       	call   0x414682
8780de:	83 c4 0c             	add    $0xc,%esp
8780e1:	33 c0                	xor    %eax,%eax
8780e3:	eb 36                	jmp    0x87811b
8780e5:	ff 75 0c             	push   0xc(%ebp)
8780e8:	6a 00                	push   $0x0
8780ea:	50                   	push   %eax
8780eb:	e8 c8 c6 b9 ff       	call   0x4147b8
8780f0:	83 c4 0c             	add    $0xc,%esp
8780f3:	85 ff                	test   %edi,%edi
8780f5:	75 09                	jne    0x878100
8780f7:	e8 73 67 bc ff       	call   0x43e86f
8780fc:	6a 16                	push   $0x16
8780fe:	eb 0c                	jmp    0x87810c
878100:	39 75 0c             	cmp    %esi,0xc(%ebp)
878103:	73 13                	jae    0x878118
878105:	e8 65 67 bc ff       	call   0x43e86f
87810a:	6a 22                	push   $0x22
87810c:	5e                   	pop    %esi
87810d:	89 30                	mov    %esi,(%eax)
87810f:	e8 e4 71 ba ff       	call   0x41f2f8
878114:	8b c6                	mov    %esi,%eax
878116:	eb 03                	jmp    0x87811b
878118:	6a 16                	push   $0x16
87811a:	58                   	pop    %eax
87811b:	5f                   	pop    %edi
87811c:	5e                   	pop    %esi
87811d:	5d                   	pop    %ebp
87811e:	c3                   	ret
87811f:	cc                   	int3
878120:	cc                   	int3
878121:	cc                   	int3
878122:	cc                   	int3
878123:	cc                   	int3
878124:	cc                   	int3
878125:	cc                   	int3
878126:	cc                   	int3
878127:	cc                   	int3
878128:	cc                   	int3
878129:	cc                   	int3
87812a:	cc                   	int3
87812b:	cc                   	int3
87812c:	cc                   	int3
87812d:	cc                   	int3
87812e:	cc                   	int3
87812f:	cc                   	int3
878130:	cc                   	int3
878131:	cc                   	int3
878132:	cc                   	int3
878133:	cc                   	int3
878134:	cc                   	int3
878135:	cc                   	int3
878136:	cc                   	int3
878137:	cc                   	int3
878138:	cc                   	int3
878139:	cc                   	int3
87813a:	cc                   	int3
87813b:	cc                   	int3
87813c:	cc                   	int3
87813d:	cc                   	int3
87813e:	55                   	push   %ebp
87813f:	8b ec                	mov    %esp,%ebp
878141:	8b 45 14             	mov    0x14(%ebp),%eax
878144:	56                   	push   %esi
878145:	85 c0                	test   %eax,%eax
878147:	74 3c                	je     0x878185
878149:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
87814d:	75 13                	jne    0x878162
87814f:	e8 1b 67 bc ff       	call   0x43e86f
878154:	6a 16                	push   $0x16
878156:	5e                   	pop    %esi
878157:	89 30                	mov    %esi,(%eax)
878159:	e8 9a 71 ba ff       	call   0x41f2f8
87815e:	8b c6                	mov    %esi,%eax
878160:	eb 25                	jmp    0x878187
878162:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
878166:	74 e7                	je     0x87814f
878168:	39 45 0c             	cmp    %eax,0xc(%ebp)
87816b:	73 09                	jae    0x878176
87816d:	e8 fd 66 bc ff       	call   0x43e86f
878172:	6a 22                	push   $0x22
878174:	eb e0                	jmp    0x878156
878176:	50                   	push   %eax
878177:	ff 75 10             	push   0x10(%ebp)
87817a:	ff 75 08             	push   0x8(%ebp)
87817d:	e8 00 6a ba ff       	call   0x41eb82
878182:	83 c4 0c             	add    $0xc,%esp
878185:	33 c0                	xor    %eax,%eax
878187:	5e                   	pop    %esi
878188:	5d                   	pop    %ebp
878189:	c3                   	ret
87818a:	cc                   	int3
87818b:	cc                   	int3
87818c:	cc                   	int3
87818d:	cc                   	int3
87818e:	cc                   	int3
87818f:	cc                   	int3
878190:	cc                   	int3
878191:	cc                   	int3
878192:	cc                   	int3
878193:	cc                   	int3
878194:	cc                   	int3
878195:	cc                   	int3
878196:	cc                   	int3
878197:	cc                   	int3
878198:	cc                   	int3
878199:	cc                   	int3
87819a:	cc                   	int3
87819b:	cc                   	int3
87819c:	cc                   	int3
87819d:	55                   	push   %ebp
87819e:	8b ec                	mov    %esp,%ebp
8781a0:	8b 45 08             	mov    0x8(%ebp),%eax
8781a3:	85 c0                	test   %eax,%eax
8781a5:	74 14                	je     0x8781bb
8781a7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
8781aa:	85 c9                	test   %ecx,%ecx
8781ac:	74 0d                	je     0x8781bb
8781ae:	8b 00                	mov    (%eax),%eax
8781b0:	2b 01                	sub    (%ecx),%eax
8781b2:	f7 d8                	neg    %eax
8781b4:	1b c0                	sbb    %eax,%eax
8781b6:	40                   	inc    %eax
8781b7:	5d                   	pop    %ebp
8781b8:	c2 08 00             	ret    $0x8
8781bb:	e8 a6 9d bb ff       	call   0x431f66
8781c0:	cc                   	int3
8781c1:	cc                   	int3
8781c2:	cc                   	int3
8781c3:	cc                   	int3
8781c4:	cc                   	int3
8781c5:	cc                   	int3
8781c6:	cc                   	int3
8781c7:	cc                   	int3
8781c8:	cc                   	int3
8781c9:	cc                   	int3
8781ca:	55                   	push   %ebp
8781cb:	8b ec                	mov    %esp,%ebp
8781cd:	68 1d f3 01 00       	push   $0x1f31d
8781d2:	ff 75 08             	push   0x8(%ebp)
8781d5:	e8 67 d6 bb ff       	call   0x435841
8781da:	59                   	pop    %ecx
8781db:	59                   	pop    %ecx
8781dc:	69 d2 a7 41 00 00    	imul   $0x41a7,%edx,%edx
8781e2:	69 c8 14 0b 00 00    	imul   $0xb14,%eax,%ecx
8781e8:	2b d1                	sub    %ecx,%edx
8781ea:	79 06                	jns    0x8781f2
8781ec:	81 c2 ff ff ff 7f    	add    $0x7fffffff,%edx
8781f2:	8b c2                	mov    %edx,%eax
8781f4:	5d                   	pop    %ebp
8781f5:	c2 04 00             	ret    $0x4
8781f8:	cc                   	int3
8781f9:	cc                   	int3
8781fa:	cc                   	int3
8781fb:	cc                   	int3
8781fc:	cc                   	int3
8781fd:	cc                   	int3
8781fe:	cc                   	int3
8781ff:	cc                   	int3
878200:	cc                   	int3
878201:	cc                   	int3
878202:	cc                   	int3
878203:	55                   	push   %ebp
878204:	8b ec                	mov    %esp,%ebp
878206:	51                   	push   %ecx
878207:	8b 4d 0c             	mov    0xc(%ebp),%ecx
87820a:	53                   	push   %ebx
87820b:	56                   	push   %esi
87820c:	57                   	push   %edi
87820d:	8b 7d 10             	mov    0x10(%ebp),%edi
878210:	85 ff                	test   %edi,%edi
878212:	74 08                	je     0x87821c
878214:	85 c9                	test   %ecx,%ecx
878216:	0f 84 85 00 00 00    	je     0x8782a1
87821c:	8b 55 08             	mov    0x8(%ebp),%edx
87821f:	8b 42 18             	mov    0x18(%edx),%eax
878222:	f7 d0                	not    %eax
878224:	a8 01                	test   $0x1,%al
878226:	74 39                	je     0x878261
878228:	85 ff                	test   %edi,%edi
87822a:	74 6c                	je     0x878298
87822c:	bb ff ff ff 1f       	mov    $0x1fffffff,%ebx
878231:	3b fb                	cmp    %ebx,%edi
878233:	73 07                	jae    0x87823c
878235:	8b c7                	mov    %edi,%eax
878237:	89 45 fc             	mov    %eax,-0x4(%ebp)
87823a:	eb 05                	jmp    0x878241
87823c:	8b c3                	mov    %ebx,%eax
87823e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
878241:	8b f0                	mov    %eax,%esi
878243:	c1 e6 02             	shl    $0x2,%esi
878246:	56                   	push   %esi
878247:	51                   	push   %ecx
878248:	8b ca                	mov    %edx,%ecx
87824a:	e8 57 f8 bb ff       	call   0x437aa6
87824f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
878252:	8b 55 08             	mov    0x8(%ebp),%edx
878255:	03 ce                	add    %esi,%ecx
878257:	89 4d 0c             	mov    %ecx,0xc(%ebp)
87825a:	2b 7d fc             	sub    -0x4(%ebp),%edi
87825d:	75 d2                	jne    0x878231
87825f:	eb 37                	jmp    0x878298
878261:	85 ff                	test   %edi,%edi
878263:	74 33                	je     0x878298
878265:	bb ff ff ff 1f       	mov    $0x1fffffff,%ebx
87826a:	3b fb                	cmp    %ebx,%edi
87826c:	73 07                	jae    0x878275
87826e:	8b c7                	mov    %edi,%eax
878270:	89 45 fc             	mov    %eax,-0x4(%ebp)
878273:	eb 05                	jmp    0x87827a
878275:	8b c3                	mov    %ebx,%eax
878277:	89 5d fc             	mov    %ebx,-0x4(%ebp)
87827a:	8b f0                	mov    %eax,%esi
87827c:	c1 e6 02             	shl    $0x2,%esi
87827f:	56                   	push   %esi
878280:	51                   	push   %ecx
878281:	8b ca                	mov    %edx,%ecx
878283:	e8 ff 67 bb ff       	call   0x42ea87
878288:	8b 4d 0c             	mov    0xc(%ebp),%ecx
87828b:	8b 55 08             	mov    0x8(%ebp),%edx
87828e:	03 ce                	add    %esi,%ecx
878290:	89 4d 0c             	mov    %ecx,0xc(%ebp)
878293:	2b 7d fc             	sub    -0x4(%ebp),%edi
878296:	75 d2                	jne    0x87826a
878298:	5f                   	pop    %edi
878299:	5e                   	pop    %esi
87829a:	5b                   	pop    %ebx
87829b:	8b e5                	mov    %ebp,%esp
87829d:	5d                   	pop    %ebp
87829e:	c2 0c 00             	ret    $0xc
8782a1:	e8 c0 9c bb ff       	call   0x431f66
8782a6:	cc                   	int3
8782a7:	cc                   	int3
8782a8:	cc                   	int3