4020c2:	eb 18                	jmp    0x4020dc
4020c4:	ff 75 08             	push   0x8(%ebp)
4020c7:	ff 36                	push   (%esi)
4020c9:	ff 15 e4 20 41 00    	call   *0x4120e4
4020cf:	85 c0                	test   %eax,%eax
4020d1:	75 07                	jne    0x4020da
4020d3:	21 06                	and    %eax,(%esi)
4020d5:	21 46 04             	and    %eax,0x4(%esi)
4020d8:	eb e5                	jmp    0x4020bf
4020da:	33 c0                	xor    %eax,%eax
4020dc:	5e                   	pop    %esi
4020dd:	5d                   	pop    %ebp
4020de:	c2 04 00             	ret    $0x4
4020e1:	55                   	push   %ebp
4020e2:	8b ec                	mov    %esp,%ebp
4020e4:	83 ec 0c             	sub    $0xc,%esp
4020e7:	53                   	push   %ebx
4020e8:	56                   	push   %esi
4020e9:	8b f1                	mov    %ecx,%esi
4020eb:	57                   	push   %edi
4020ec:	89 75 f8             	mov    %esi,-0x8(%ebp)
4020ef:	8b 7e 08             	mov    0x8(%esi),%edi
4020f2:	3b 7e 04             	cmp    0x4(%esi),%edi
4020f5:	0f 82 91 00 00 00    	jb     0x40218c
4020fb:	47                   	inc    %edi
4020fc:	33 db                	xor    %ebx,%ebx
4020fe:	0f af 7e 0c          	imul   0xc(%esi),%edi
402102:	6a 04                	push   $0x4
402104:	59                   	pop    %ecx
402105:	8b c7                	mov    %edi,%eax
402107:	89 7d f4             	mov    %edi,-0xc(%ebp)
40210a:	f7 e1                	mul    %ecx
40210c:	0f 90 c3             	seto   %bl
40210f:	33 c9                	xor    %ecx,%ecx
402111:	f7 db                	neg    %ebx
402113:	0b d8                	or     %eax,%ebx
402115:	83 c3 04             	add    $0x4,%ebx
402118:	0f 92 c1             	setb   %cl
40211b:	f7 d9                	neg    %ecx
40211d:	0b cb                	or     %ebx,%ecx
40211f:	e8 b7 39 00 00       	call   0x405adb
402124:	85 c0                	test   %eax,%eax
402126:	74 13                	je     0x40213b
402128:	89 38                	mov    %edi,(%eax)
40212a:	8d 58 04             	lea    0x4(%eax),%ebx
40212d:	85 ff                	test   %edi,%edi
40212f:	74 0c                	je     0x40213d
402131:	8b cf                	mov    %edi,%ecx
402133:	33 c0                	xor    %eax,%eax
402135:	8b fb                	mov    %ebx,%edi
402137:	f3 ab                	rep stos %eax,%es:(%edi)
402139:	eb 02                	jmp    0x40213d
40213b:	33 db                	xor    %ebx,%ebx
40213d:	33 ff                	xor    %edi,%edi
40213f:	39 7e 08             	cmp    %edi,0x8(%esi)
402142:	76 17                	jbe    0x40215b
402144:	8b 06                	mov    (%esi),%eax
402146:	8b cf                	mov    %edi,%ecx
402148:	c1 e1 02             	shl    $0x2,%ecx
40214b:	03 c1                	add    %ecx,%eax
40214d:	03 cb                	add    %ebx,%ecx
40214f:	50                   	push   %eax
402150:	e8 0f 11 00 00       	call   0x403264
402155:	47                   	inc    %edi
402156:	3b 7e 08             	cmp    0x8(%esi),%edi
402159:	72 e9                	jb     0x402144
40215b:	8b 06                	mov    (%esi),%eax
40215d:	85 c0                	test   %eax,%eax
40215f:	74 21                	je     0x402182
402161:	8b 78 fc             	mov    -0x4(%eax),%edi
402164:	8d 04 b8             	lea    (%eax,%edi,4),%eax
402167:	85 ff                	test   %edi,%edi
402169:	74 17                	je     0x402182
40216b:	8b f0                	mov    %eax,%esi
40216d:	8d 76 fc             	lea    -0x4(%esi),%esi
402170:	8b 0e                	mov    (%esi),%ecx
402172:	e8 b6 38 00 00       	call   0x405a2d
402177:	83 26 00             	andl   $0x0,(%esi)
40217a:	83 ef 01             	sub    $0x1,%edi
40217d:	75 ee                	jne    0x40216d
40217f:	8b 75 f8             	mov    -0x8(%ebp),%esi
402182:	8b 45 f4             	mov    -0xc(%ebp),%eax
402185:	89 1e                	mov    %ebx,(%esi)
402187:	89 46 04             	mov    %eax,0x4(%esi)
40218a:	eb 02                	jmp    0x40218e
40218c:	8b 1e                	mov    (%esi),%ebx
40218e:	8d 45 08             	lea    0x8(%ebp),%eax
402191:	50                   	push   %eax
402192:	8b 46 08             	mov    0x8(%esi),%eax
402195:	8d 0c 83             	lea    (%ebx,%eax,4),%ecx
402198:	e8 c7 10 00 00       	call   0x403264
40219d:	8b 4d 08             	mov    0x8(%ebp),%ecx
4021a0:	ff 46 08             	incl   0x8(%esi)
4021a3:	e8 85 38 00 00       	call   0x405a2d
4021a8:	5f                   	pop    %edi
4021a9:	5e                   	pop    %esi
4021aa:	5b                   	pop    %ebx
4021ab:	c9                   	leave
4021ac:	c2 04 00             	ret    $0x4
4021af:	c7 01 b4 3b 41 00    	movl   $0x413bb4,(%ecx)
4021b5:	8b c1                	mov    %ecx,%eax
4021b7:	c2 04 00             	ret    $0x4
4021ba:	55                   	push   %ebp
4021bb:	8b ec                	mov    %esp,%ebp
4021bd:	83 ec 14             	sub    $0x14,%esp
4021c0:	53                   	push   %ebx
4021c1:	8b d9                	mov    %ecx,%ebx
4021c3:	56                   	push   %esi
4021c4:	57                   	push   %edi
4021c5:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4021c8:	8b 73 08             	mov    0x8(%ebx),%esi
4021cb:	3b 73 04             	cmp    0x4(%ebx),%esi
4021ce:	0f 82 be 00 00 00    	jb     0x402292
4021d4:	46                   	inc    %esi
4021d5:	0f af 73 0c          	imul   0xc(%ebx),%esi
4021d9:	33 db                	xor    %ebx,%ebx
4021db:	6a 30                	push   $0x30
4021dd:	59                   	pop    %ecx
4021de:	8b c6                	mov    %esi,%eax
4021e0:	89 75 ec             	mov    %esi,-0x14(%ebp)
4021e3:	f7 e1                	mul    %ecx
4021e5:	0f 90 c3             	seto   %bl
4021e8:	33 c9                	xor    %ecx,%ecx
4021ea:	f7 db                	neg    %ebx
4021ec:	0b d8                	or     %eax,%ebx
4021ee:	83 c3 04             	add    $0x4,%ebx
4021f1:	0f 92 c1             	setb   %cl
4021f4:	f7 d9                	neg    %ecx
4021f6:	0b cb                	or     %ebx,%ecx
4021f8:	e8 de 38 00 00       	call   0x405adb
4021fd:	85 c0                	test   %eax,%eax
4021ff:	74 25                	je     0x402226
402201:	8d 48 04             	lea    0x4(%eax),%ecx
402204:	89 30                	mov    %esi,(%eax)
402206:	33 c0                	xor    %eax,%eax
402208:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40220b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40220e:	8b fe                	mov    %esi,%edi
402210:	85 f6                	test   %esi,%esi
402212:	74 1c                	je     0x402230
402214:	8d 51 28             	lea    0x28(%ecx),%edx
402217:	89 02                	mov    %eax,(%edx)
402219:	8d 52 30             	lea    0x30(%edx),%edx
40221c:	89 42 d4             	mov    %eax,-0x2c(%edx)
40221f:	83 ef 01             	sub    $0x1,%edi
402222:	75 f3                	jne    0x402217
402224:	eb 0a                	jmp    0x402230
402226:	33 c0                	xor    %eax,%eax
402228:	89 45 fc             	mov    %eax,-0x4(%ebp)
40222b:	8b c8                	mov    %eax,%ecx
40222d:	89 45 f0             	mov    %eax,-0x10(%ebp)
402230:	8b 5d f4             	mov    -0xc(%ebp),%ebx
402233:	39 43 08             	cmp    %eax,0x8(%ebx)
402236:	76 44                	jbe    0x40227c
402238:	8b f0                	mov    %eax,%esi
40223a:	89 45 f8             	mov    %eax,-0x8(%ebp)
40223d:	8b d1                	mov    %ecx,%edx
40223f:	89 4d f4             	mov    %ecx,-0xc(%ebp)
402242:	8b 03                	mov    (%ebx),%eax
402244:	8b fa                	mov    %edx,%edi
402246:	03 c6                	add    %esi,%eax
402248:	6a 0a                	push   $0xa
40224a:	59                   	pop    %ecx
40224b:	8b f0                	mov    %eax,%esi
40224d:	83 c0 28             	add    $0x28,%eax
402250:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
402252:	50                   	push   %eax
402253:	8d 4a 28             	lea    0x28(%edx),%ecx
402256:	e8 71 0a 00 00       	call   0x402ccc
40225b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40225e:	8b 75 f8             	mov    -0x8(%ebp),%esi
402261:	40                   	inc    %eax
402262:	8b 55 f4             	mov    -0xc(%ebp),%edx
402265:	83 c6 30             	add    $0x30,%esi
402268:	83 c2 30             	add    $0x30,%edx
40226b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40226e:	89 75 f8             	mov    %esi,-0x8(%ebp)
402271:	89 55 f4             	mov    %edx,-0xc(%ebp)
402274:	3b 43 08             	cmp    0x8(%ebx),%eax
402277:	72 c9                	jb     0x402242
402279:	8b 75 ec             	mov    -0x14(%ebp),%esi
40227c:	8b 0b                	mov    (%ebx),%ecx
40227e:	85 c9                	test   %ecx,%ecx
402280:	74 06                	je     0x402288
402282:	51                   	push   %ecx
402283:	e8 2c fb ff ff       	call   0x401db4
402288:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40228b:	89 0b                	mov    %ecx,(%ebx)
40228d:	89 73 04             	mov    %esi,0x4(%ebx)
402290:	eb 02                	jmp    0x402294
402292:	8b 0b                	mov    (%ebx),%ecx
402294:	6b 43 08 30          	imul   $0x30,0x8(%ebx),%eax
402298:	8d 75 08             	lea    0x8(%ebp),%esi
40229b:	6a 0a                	push   $0xa
40229d:	03 c1                	add    %ecx,%eax
40229f:	59                   	pop    %ecx
4022a0:	8b f8                	mov    %eax,%edi
4022a2:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4022a4:	8d 4d 30             	lea    0x30(%ebp),%ecx
4022a7:	51                   	push   %ecx
4022a8:	8d 48 28             	lea    0x28(%eax),%ecx
4022ab:	e8 1c 0a 00 00       	call   0x402ccc
4022b0:	ff 43 08             	incl   0x8(%ebx)
4022b3:	8d 4d 30             	lea    0x30(%ebp),%ecx
4022b6:	e8 ab 0b 00 00       	call   0x402e66
4022bb:	5f                   	pop    %edi
4022bc:	5e                   	pop    %esi
4022bd:	5b                   	pop    %ebx
4022be:	c9                   	leave
4022bf:	c2 30 00             	ret    $0x30
4022c2:	55                   	push   %ebp
4022c3:	8b ec                	mov    %esp,%ebp
4022c5:	56                   	push   %esi
4022c6:	8b 75 0c             	mov    0xc(%ebp),%esi
4022c9:	57                   	push   %edi
4022ca:	8b f9                	mov    %ecx,%edi
4022cc:	3b 77 08             	cmp    0x8(%edi),%esi
4022cf:	0f 92 c1             	setb   %cl
4022d2:	e8 54 35 00 00       	call   0x40582b
4022d7:	8b 4d 08             	mov    0x8(%ebp),%ecx
4022da:	6b c6 30             	imul   $0x30,%esi,%eax
4022dd:	03 07                	add    (%edi),%eax
4022df:	50                   	push   %eax
4022e0:	e8 b2 c7 00 00       	call   0x40ea97
4022e5:	8b 45 08             	mov    0x8(%ebp),%eax
4022e8:	5f                   	pop    %edi
4022e9:	5e                   	pop    %esi
4022ea:	5d                   	pop    %ebp
4022eb:	c2 08 00             	ret    $0x8
4022ee:	55                   	push   %ebp
4022ef:	8b ec                	mov    %esp,%ebp
4022f1:	51                   	push   %ecx
4022f2:	53                   	push   %ebx
4022f3:	8b 5d 08             	mov    0x8(%ebp),%ebx
4022f6:	56                   	push   %esi
4022f7:	8b f1                	mov    %ecx,%esi
4022f9:	57                   	push   %edi
4022fa:	8b 03                	mov    (%ebx),%eax
4022fc:	89 06                	mov    %eax,(%esi)
4022fe:	8d 4e 08             	lea    0x8(%esi),%ecx
402301:	8b 43 04             	mov    0x4(%ebx),%eax
402304:	89 46 04             	mov    %eax,0x4(%esi)
402307:	8d 43 08             	lea    0x8(%ebx),%eax
40230a:	50                   	push   %eax
40230b:	e8 bc 09 00 00       	call   0x402ccc
402310:	8d 7b 10             	lea    0x10(%ebx),%edi
402313:	57                   	push   %edi
402314:	8d 4e 10             	lea    0x10(%esi),%ecx
402317:	e8 48 0f 00 00       	call   0x403264
40231c:	8b 47 04             	mov    0x4(%edi),%eax
40231f:	8d 4e 1c             	lea    0x1c(%esi),%ecx
402322:	89 46 14             	mov    %eax,0x14(%esi)
402325:	8b 43 18             	mov    0x18(%ebx),%eax
402328:	89 46 18             	mov    %eax,0x18(%esi)
40232b:	8d 43 1c             	lea    0x1c(%ebx),%eax
40232e:	50                   	push   %eax
40232f:	e8 30 0f 00 00       	call   0x403264
402334:	8b 43 20             	mov    0x20(%ebx),%eax
402337:	8d 4e 24             	lea    0x24(%esi),%ecx
40233a:	89 46 20             	mov    %eax,0x20(%esi)
40233d:	8d 43 24             	lea    0x24(%ebx),%eax
402340:	50                   	push   %eax
402341:	e8 1e 0f 00 00       	call   0x403264
402346:	8d 43 28             	lea    0x28(%ebx),%eax
402349:	50                   	push   %eax
40234a:	8d 4e 28             	lea    0x28(%esi),%ecx
40234d:	e8 12 0f 00 00       	call   0x403264
402352:	8b 43 2c             	mov    0x2c(%ebx),%eax
402355:	8d 4e 30             	lea    0x30(%esi),%ecx
402358:	89 46 2c             	mov    %eax,0x2c(%esi)
40235b:	8d 43 30             	lea    0x30(%ebx),%eax
40235e:	50                   	push   %eax
40235f:	e8 00 0f 00 00       	call   0x403264
402364:	8b 43 34             	mov    0x34(%ebx),%eax
402367:	8d 4e 44             	lea    0x44(%esi),%ecx
40236a:	89 46 34             	mov    %eax,0x34(%esi)
40236d:	8b 43 38             	mov    0x38(%ebx),%eax
402370:	89 46 38             	mov    %eax,0x38(%esi)
402373:	8b 43 3c             	mov    0x3c(%ebx),%eax
402376:	89 46 3c             	mov    %eax,0x3c(%esi)
402379:	8b 43 40             	mov    0x40(%ebx),%eax
40237c:	89 46 40             	mov    %eax,0x40(%esi)
40237f:	8d 43 44             	lea    0x44(%ebx),%eax
402382:	50                   	push   %eax
402383:	e8 44 09 00 00       	call   0x402ccc
402388:	5f                   	pop    %edi
402389:	8b c6                	mov    %esi,%eax
40238b:	5e                   	pop    %esi
40238c:	5b                   	pop    %ebx
40238d:	c9                   	leave
40238e:	c2 04 00             	ret    $0x4
402391:	56                   	push   %esi
402392:	8b f1                	mov    %ecx,%esi
402394:	e8 3c dc 00 00       	call   0x40ffd5
402399:	8b c6                	mov    %esi,%eax
40239b:	5e                   	pop    %esi
40239c:	c2 04 00             	ret    $0x4
40239f:	55                   	push   %ebp
4023a0:	8b ec                	mov    %esp,%ebp
4023a2:	56                   	push   %esi
4023a3:	8b f1                	mov    %ecx,%esi
4023a5:	57                   	push   %edi
4023a6:	8b 4e 08             	mov    0x8(%esi),%ecx
4023a9:	3b 4e 04             	cmp    0x4(%esi),%ecx
4023ac:	72 3f                	jb     0x4023ed
4023ae:	53                   	push   %ebx
4023af:	8d 59 01             	lea    0x1(%ecx),%ebx
4023b2:	33 c9                	xor    %ecx,%ecx
4023b4:	0f af 5e 0c          	imul   0xc(%esi),%ebx
4023b8:	6a 04                	push   $0x4
4023ba:	5a                   	pop    %edx
4023bb:	8b c3                	mov    %ebx,%eax
4023bd:	f7 e2                	mul    %edx
4023bf:	0f 90 c1             	seto   %cl
4023c2:	f7 d9                	neg    %ecx
4023c4:	0b c8                	or     %eax,%ecx
4023c6:	e8 10 37 00 00       	call   0x405adb
4023cb:	33 d2                	xor    %edx,%edx
4023cd:	8b f8                	mov    %eax,%edi
4023cf:	39 56 08             	cmp    %edx,0x8(%esi)
4023d2:	76 0e                	jbe    0x4023e2
4023d4:	8b 0e                	mov    (%esi),%ecx
4023d6:	8b 04 91             	mov    (%ecx,%edx,4),%eax
4023d9:	89 04 97             	mov    %eax,(%edi,%edx,4)
4023dc:	42                   	inc    %edx
4023dd:	3b 56 08             	cmp    0x8(%esi),%edx
4023e0:	72 f2                	jb     0x4023d4
4023e2:	8b 4e 08             	mov    0x8(%esi),%ecx
4023e5:	89 5e 04             	mov    %ebx,0x4(%esi)
4023e8:	89 3e                	mov    %edi,(%esi)
4023ea:	5b                   	pop    %ebx
4023eb:	eb 02                	jmp    0x4023ef
4023ed:	8b 3e                	mov    (%esi),%edi
4023ef:	8b 45 08             	mov    0x8(%ebp),%eax
4023f2:	89 04 8f             	mov    %eax,(%edi,%ecx,4)
4023f5:	ff 46 08             	incl   0x8(%esi)
4023f8:	5f                   	pop    %edi
4023f9:	5e                   	pop    %esi
4023fa:	5d                   	pop    %ebp
4023fb:	c2 04 00             	ret    $0x4
4023fe:	56                   	push   %esi
4023ff:	8b f1                	mov    %ecx,%esi
402401:	8b 16                	mov    (%esi),%edx
402403:	85 d2                	test   %edx,%edx
402405:	74 09                	je     0x402410
402407:	8b 02                	mov    (%edx),%eax
402409:	52                   	push   %edx
40240a:	ff 50 08             	call   *0x8(%eax)
40240d:	83 26 00             	andl   $0x0,(%esi)
402410:	5e                   	pop    %esi