40309c:	8b c2                	mov    %edx,%eax
40309e:	2b c6                	sub    %esi,%eax
4030a0:	83 f8 01             	cmp    $0x1,%eax
4030a3:	73 2f                	jae    0x4030d4
4030a5:	8b 01                	mov    (%ecx),%eax
4030a7:	2b c6                	sub    %esi,%eax
4030a9:	48                   	dec    %eax
4030aa:	83 f8 01             	cmp    $0x1,%eax
4030ad:	72 29                	jb     0x4030d8
4030af:	2b 11                	sub    (%ecx),%edx
4030b1:	2b 31                	sub    (%ecx),%esi
4030b3:	57                   	push   %edi
4030b4:	8b fa                	mov    %edx,%edi
4030b6:	d1 ef                	shr    $1,%edi
4030b8:	83 c8 ff             	or     $0xffffffff,%eax
4030bb:	2b c7                	sub    %edi,%eax
4030bd:	46                   	inc    %esi
4030be:	3b c2                	cmp    %edx,%eax
4030c0:	73 04                	jae    0x4030c6
4030c2:	33 d2                	xor    %edx,%edx
4030c4:	eb 02                	jmp    0x4030c8
4030c6:	03 d7                	add    %edi,%edx
4030c8:	3b d6                	cmp    %esi,%edx
4030ca:	0f 42 d6             	cmovb  %esi,%edx
4030cd:	52                   	push   %edx
4030ce:	e8 85 00 00 00       	call   0x403158
4030d3:	5f                   	pop    %edi
4030d4:	5e                   	pop    %esi
4030d5:	c2 04 00             	ret    $0x4
4030d8:	68 ec d5 41 00       	push   $0x41d5ec
4030dd:	e8 78 03 00 00       	call   0x40345a
4030e2:	cc                   	int3
4030e3:	6a 04                	push   $0x4
4030e5:	b8 ce 7e 41 00       	mov    $0x417ece,%eax
4030ea:	e8 0a 2d 00 00       	call   0x405df9
4030ef:	8d 45 f0             	lea    -0x10(%ebp),%eax
4030f2:	50                   	push   %eax
4030f3:	e8 04 f6 ff ff       	call   0x4026fc
4030f8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4030fc:	50                   	push   %eax
4030fd:	e8 8e 01 00 00       	call   0x403290
403102:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
403106:	59                   	pop    %ecx
403107:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40310a:	8b f0                	mov    %eax,%esi
40310c:	e8 ba f3 ff ff       	call   0x4024cb
403111:	8b 16                	mov    (%esi),%edx
403113:	ff 75 08             	push   0x8(%ebp)
403116:	8b ce                	mov    %esi,%ecx
403118:	ff 52 20             	call   *0x20(%edx)
40311b:	e8 b6 2c 00 00       	call   0x405dd6
403120:	c2 04 00             	ret    $0x4
403123:	56                   	push   %esi
403124:	57                   	push   %edi
403125:	8b f9                	mov    %ecx,%edi
403127:	6a 04                	push   $0x4
403129:	c7 07 94 a0 41 00    	movl   $0x41a094,(%edi)
40312f:	e8 14 1e 00 00       	call   0x404f48
403134:	8b f0                	mov    %eax,%esi
403136:	59                   	pop    %ecx
403137:	85 f6                	test   %esi,%esi
403139:	74 0c                	je     0x403147
40313b:	6a 01                	push   $0x1
40313d:	e8 8c 0f 00 00       	call   0x4040ce
403142:	59                   	pop    %ecx
403143:	89 06                	mov    %eax,(%esi)
403145:	eb 02                	jmp    0x403149
403147:	33 f6                	xor    %esi,%esi
403149:	8b cf                	mov    %edi,%ecx
40314b:	89 77 34             	mov    %esi,0x34(%edi)
40314e:	e8 f9 00 00 00       	call   0x40324c
403153:	8b c7                	mov    %edi,%eax
403155:	5f                   	pop    %edi
403156:	5e                   	pop    %esi
403157:	c3                   	ret
403158:	55                   	push   %ebp
403159:	8b ec                	mov    %esp,%ebp
40315b:	53                   	push   %ebx
40315c:	56                   	push   %esi
40315d:	57                   	push   %edi
40315e:	8b 7d 08             	mov    0x8(%ebp),%edi
403161:	33 f6                	xor    %esi,%esi
403163:	8b d9                	mov    %ecx,%ebx
403165:	85 ff                	test   %edi,%edi
403167:	74 12                	je     0x40317b
403169:	83 ff ff             	cmp    $0xffffffff,%edi
40316c:	77 4a                	ja     0x4031b8
40316e:	57                   	push   %edi
40316f:	e8 d4 1d 00 00       	call   0x404f48
403174:	8b f0                	mov    %eax,%esi
403176:	59                   	pop    %ecx
403177:	85 f6                	test   %esi,%esi
403179:	74 3d                	je     0x4031b8
40317b:	8b 43 04             	mov    0x4(%ebx),%eax
40317e:	2b 03                	sub    (%ebx),%eax
403180:	50                   	push   %eax
403181:	ff 33                	push   (%ebx)
403183:	56                   	push   %esi
403184:	e8 c7 15 00 00       	call   0x404750
403189:	8b 43 04             	mov    0x4(%ebx),%eax
40318c:	2b 03                	sub    (%ebx),%eax
40318e:	83 c4 0c             	add    $0xc,%esp
403191:	83 3b 00             	cmpl   $0x0,(%ebx)
403194:	89 45 08             	mov    %eax,0x8(%ebp)
403197:	74 08                	je     0x4031a1
403199:	ff 33                	push   (%ebx)
40319b:	e8 58 1d 00 00       	call   0x404ef8
4031a0:	59                   	pop    %ecx
4031a1:	8d 04 3e             	lea    (%esi,%edi,1),%eax
4031a4:	89 43 08             	mov    %eax,0x8(%ebx)
4031a7:	8b 45 08             	mov    0x8(%ebp),%eax
4031aa:	5f                   	pop    %edi
4031ab:	03 c6                	add    %esi,%eax
4031ad:	89 33                	mov    %esi,(%ebx)
4031af:	5e                   	pop    %esi
4031b0:	89 43 04             	mov    %eax,0x4(%ebx)
4031b3:	5b                   	pop    %ebx
4031b4:	5d                   	pop    %ebp
4031b5:	c2 04 00             	ret    $0x4
4031b8:	e8 6c 02 00 00       	call   0x403429
4031bd:	cc                   	int3
4031be:	55                   	push   %ebp
4031bf:	8b ec                	mov    %esp,%ebp
4031c1:	56                   	push   %esi
4031c2:	57                   	push   %edi
4031c3:	8b 7d 08             	mov    0x8(%ebp),%edi
4031c6:	8b f1                	mov    %ecx,%esi
4031c8:	83 ff ff             	cmp    $0xffffffff,%edi
4031cb:	74 34                	je     0x403201
4031cd:	6a 00                	push   $0x0
4031cf:	57                   	push   %edi
4031d0:	e8 39 e1 ff ff       	call   0x40130e
4031d5:	84 c0                	test   %al,%al
4031d7:	74 20                	je     0x4031f9
4031d9:	ff 75 0c             	push   0xc(%ebp)
4031dc:	8b ce                	mov    %esi,%ecx
4031de:	57                   	push   %edi
4031df:	6a 00                	push   $0x0
4031e1:	e8 26 00 00 00       	call   0x40320c
4031e6:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
4031ea:	89 7e 10             	mov    %edi,0x10(%esi)
4031ed:	72 04                	jb     0x4031f3
4031ef:	8b 06                	mov    (%esi),%eax
4031f1:	eb 02                	jmp    0x4031f5
4031f3:	8b c6                	mov    %esi,%eax
4031f5:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
4031f9:	5f                   	pop    %edi
4031fa:	8b c6                	mov    %esi,%eax
4031fc:	5e                   	pop    %esi
4031fd:	5d                   	pop    %ebp
4031fe:	c2 08 00             	ret    $0x8
403201:	68 f8 d3 41 00       	push   $0x41d3f8
403206:	e8 4f 02 00 00       	call   0x40345a
40320b:	cc                   	int3
40320c:	55                   	push   %ebp
40320d:	8b ec                	mov    %esp,%ebp
40320f:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
403213:	8b d1                	mov    %ecx,%edx
403215:	75 13                	jne    0x40322a
403217:	83 7a 14 10          	cmpl   $0x10,0x14(%edx)
40321b:	72 02                	jb     0x40321f
40321d:	8b 12                	mov    (%edx),%edx
40321f:	8b 45 08             	mov    0x8(%ebp),%eax
403222:	8a 4d 10             	mov    0x10(%ebp),%cl
403225:	88 0c 02             	mov    %cl,(%edx,%eax,1)
403228:	eb 1e                	jmp    0x403248
40322a:	83 7a 14 10          	cmpl   $0x10,0x14(%edx)
40322e:	72 02                	jb     0x403232
403230:	8b 12                	mov    (%edx),%edx
403232:	0f be 45 10          	movsbl 0x10(%ebp),%eax
403236:	ff 75 0c             	push   0xc(%ebp)
403239:	50                   	push   %eax
40323a:	8b 45 08             	mov    0x8(%ebp),%eax
40323d:	03 c2                	add    %edx,%eax
40323f:	50                   	push   %eax
403240:	e8 fb 3c 00 00       	call   0x406f40
403245:	83 c4 0c             	add    $0xc,%esp
403248:	5d                   	pop    %ebp
403249:	c2 0c 00             	ret    $0xc
40324c:	8d 41 04             	lea    0x4(%ecx),%eax
40324f:	89 41 0c             	mov    %eax,0xc(%ecx)
403252:	8d 41 14             	lea    0x14(%ecx),%eax
403255:	89 41 1c             	mov    %eax,0x1c(%ecx)
403258:	8d 41 18             	lea    0x18(%ecx),%eax
40325b:	89 41 20             	mov    %eax,0x20(%ecx)
40325e:	8d 41 24             	lea    0x24(%ecx),%eax
403261:	89 41 2c             	mov    %eax,0x2c(%ecx)
403264:	56                   	push   %esi
403265:	33 f6                	xor    %esi,%esi
403267:	8d 51 08             	lea    0x8(%ecx),%edx
40326a:	89 51 10             	mov    %edx,0x10(%ecx)
40326d:	8d 41 28             	lea    0x28(%ecx),%eax
403270:	89 41 30             	mov    %eax,0x30(%ecx)
403273:	89 32                	mov    %esi,(%edx)
403275:	8b 41 20             	mov    0x20(%ecx),%eax
403278:	89 30                	mov    %esi,(%eax)
40327a:	8b 41 30             	mov    0x30(%ecx),%eax
40327d:	89 30                	mov    %esi,(%eax)
40327f:	8b 41 0c             	mov    0xc(%ecx),%eax
403282:	89 30                	mov    %esi,(%eax)
403284:	8b 41 1c             	mov    0x1c(%ecx),%eax
403287:	89 30                	mov    %esi,(%eax)
403289:	8b 41 2c             	mov    0x2c(%ecx),%eax
40328c:	89 30                	mov    %esi,(%eax)
40328e:	5e                   	pop    %esi
40328f:	c3                   	ret
403290:	6a 14                	push   $0x14
403292:	b8 a4 7d 41 00       	mov    $0x417da4,%eax
403297:	e8 5d 2b 00 00       	call   0x405df9
40329c:	6a 00                	push   $0x0
40329e:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4032a1:	e8 17 11 00 00       	call   0x4043bd
4032a6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4032aa:	8b 3d f8 29 42 00    	mov    0x4229f8,%edi
4032b0:	b9 94 1a 42 00       	mov    $0x421a94,%ecx
4032b5:	89 7d f0             	mov    %edi,-0x10(%ebp)
4032b8:	e8 bd f1 ff ff       	call   0x40247a
4032bd:	8b 4d 08             	mov    0x8(%ebp),%ecx
4032c0:	50                   	push   %eax
4032c1:	e8 34 f2 ff ff       	call   0x4024fa
4032c6:	8b f0                	mov    %eax,%esi
4032c8:	85 f6                	test   %esi,%esi
4032ca:	75 4d                	jne    0x403319
4032cc:	85 ff                	test   %edi,%edi
4032ce:	74 04                	je     0x4032d4
4032d0:	8b f7                	mov    %edi,%esi
4032d2:	eb 45                	jmp    0x403319
4032d4:	ff 75 08             	push   0x8(%ebp)
4032d7:	8d 45 f0             	lea    -0x10(%ebp),%eax
4032da:	50                   	push   %eax
4032db:	e8 89 f2 ff ff       	call   0x402569
4032e0:	59                   	pop    %ecx
4032e1:	59                   	pop    %ecx
4032e2:	83 f8 ff             	cmp    $0xffffffff,%eax
4032e5:	75 1b                	jne    0x403302
4032e7:	68 00 d6 41 00       	push   $0x41d600
4032ec:	8d 4d e0             	lea    -0x20(%ebp),%ecx
4032ef:	e8 be 1c 00 00       	call   0x404fb2
4032f4:	68 48 e8 41 00       	push   $0x41e848
4032f9:	8d 45 e0             	lea    -0x20(%ebp),%eax
4032fc:	50                   	push   %eax
4032fd:	e8 79 2a 00 00       	call   0x405d7b
403302:	8b 75 f0             	mov    -0x10(%ebp),%esi
403305:	89 35 f8 29 42 00    	mov    %esi,0x4229f8
40330b:	8b 06                	mov    (%esi),%eax
40330d:	8b ce                	mov    %esi,%ecx
40330f:	ff 50 04             	call   *0x4(%eax)
403312:	56                   	push   %esi
403313:	e8 88 0d 00 00       	call   0x4040a0
403318:	59                   	pop    %ecx
403319:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40331c:	e8 f8 10 00 00       	call   0x404419
403321:	8b c6                	mov    %esi,%eax
403323:	e8 ae 2a 00 00       	call   0x405dd6
403328:	c3                   	ret
403329:	2b 49 fc             	sub    -0x4(%ecx),%ecx
40332c:	e9 0f f6 ff ff       	jmp    0x402940
403331:	2b 49 fc             	sub    -0x4(%ecx),%ecx
403334:	e9 e7 f8 ff ff       	jmp    0x402c20
403339:	55                   	push   %ebp
40333a:	8b ec                	mov    %esp,%ebp
40333c:	83 3d 54 94 41 00 00 	cmpl   $0x0,0x419454
403343:	b8 50 94 41 00       	mov    $0x419450,%eax
403348:	74 10                	je     0x40335a
40334a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40334d:	39 08                	cmp    %ecx,(%eax)
40334f:	74 0d                	je     0x40335e
403351:	83 c0 08             	add    $0x8,%eax
403354:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
403358:	75 f3                	jne    0x40334d
40335a:	33 c0                	xor    %eax,%eax
40335c:	5d                   	pop    %ebp
40335d:	c3                   	ret
40335e:	8b 40 04             	mov    0x4(%eax),%eax
403361:	5d                   	pop    %ebp
403362:	c3                   	ret
403363:	55                   	push   %ebp
403364:	8b ec                	mov    %esp,%ebp
403366:	83 3d fc 91 41 00 00 	cmpl   $0x0,0x4191fc
40336d:	b8 f8 91 41 00       	mov    $0x4191f8,%eax
403372:	74 10                	je     0x403384
403374:	8b 4d 08             	mov    0x8(%ebp),%ecx
403377:	39 08                	cmp    %ecx,(%eax)
403379:	74 0d                	je     0x403388
40337b:	83 c0 08             	add    $0x8,%eax
40337e:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
403382:	75 f3                	jne    0x403377
403384:	33 c0                	xor    %eax,%eax
403386:	5d                   	pop    %ebp
403387:	c3                   	ret
403388:	8b 40 04             	mov    0x4(%eax),%eax
40338b:	5d                   	pop    %ebp
40338c:	c3                   	ret
40338d:	55                   	push   %ebp
40338e:	8b ec                	mov    %esp,%ebp
403390:	56                   	push   %esi
403391:	ff 75 08             	push   0x8(%ebp)
403394:	8b f1                	mov    %ecx,%esi
403396:	e8 73 1c 00 00       	call   0x40500e
40339b:	c7 06 c4 9f 41 00    	movl   $0x419fc4,(%esi)
4033a1:	8b c6                	mov    %esi,%eax
4033a3:	5e                   	pop    %esi
4033a4:	5d                   	pop    %ebp
4033a5:	c2 04 00             	ret    $0x4
4033a8:	55                   	push   %ebp
4033a9:	8b ec                	mov    %esp,%ebp
4033ab:	56                   	push   %esi
4033ac:	ff 75 08             	push   0x8(%ebp)
4033af:	8b f1                	mov    %ecx,%esi
4033b1:	e8 58 1c 00 00       	call   0x40500e
4033b6:	c7 06 ec 9f 41 00    	movl   $0x419fec,(%esi)
4033bc:	8b c6                	mov    %esi,%eax
4033be:	5e                   	pop    %esi
4033bf:	5d                   	pop    %ebp
4033c0:	c2 04 00             	ret    $0x4
4033c3:	55                   	push   %ebp
4033c4:	8b ec                	mov    %esp,%ebp
4033c6:	56                   	push   %esi
4033c7:	ff 75 08             	push   0x8(%ebp)
4033ca:	8b f1                	mov    %ecx,%esi
4033cc:	e8 3d 1c 00 00       	call   0x40500e
4033d1:	c7 06 e0 9f 41 00    	movl   $0x419fe0,(%esi)
4033d7:	8b c6                	mov    %esi,%eax
4033d9:	5e                   	pop    %esi
4033da:	5d                   	pop    %ebp
4033db:	c2 04 00             	ret    $0x4
4033de:	55                   	push   %ebp
4033df:	8b ec                	mov    %esp,%ebp
4033e1:	56                   	push   %esi
4033e2:	ff 75 08             	push   0x8(%ebp)
4033e5:	8b f1                	mov    %ecx,%esi
4033e7:	e8 22 1c 00 00       	call   0x40500e
4033ec:	c7 06 f8 9f 41 00    	movl   $0x419ff8,(%esi)
4033f2:	8b c6                	mov    %esi,%eax
4033f4:	5e                   	pop    %esi
4033f5:	5d                   	pop    %ebp
4033f6:	c2 04 00             	ret    $0x4
4033f9:	c7 01 c4 9f 41 00    	movl   $0x419fc4,(%ecx)
4033ff:	e9 2d 1c 00 00       	jmp    0x405031
403404:	55                   	push   %ebp
403405:	8b ec                	mov    %esp,%ebp
403407:	56                   	push   %esi
403408:	8b f1                	mov    %ecx,%esi
40340a:	c7 06 c4 9f 41 00    	movl   $0x419fc4,(%esi)
403410:	e8 1c 1c 00 00       	call   0x405031
403415:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
403419:	74 07                	je     0x403422
40341b:	56                   	push   %esi
40341c:	e8 d7 1a 00 00       	call   0x404ef8
403421:	59                   	pop    %ecx