4030d3:	8b 00                	mov    (%eax),%eax
4030d5:	3b c7                	cmp    %edi,%eax
4030d7:	74 16                	je     0x4030ef
4030d9:	8b 4e 30             	mov    0x30(%esi),%ecx
4030dc:	8b 09                	mov    (%ecx),%ecx
4030de:	03 c8                	add    %eax,%ecx
4030e0:	3b c1                	cmp    %ecx,%eax
4030e2:	73 0b                	jae    0x4030ef
4030e4:	8b ce                	mov    %esi,%ecx
4030e6:	e8 c9 05 00 00       	call   0x4036b4
4030eb:	88 18                	mov    %bl,(%eax)
4030ed:	eb 25                	jmp    0x403114
4030ef:	8b 46 50             	mov    0x50(%esi),%eax
4030f2:	3b c7                	cmp    %edi,%eax
4030f4:	0f 84 e6 00 00 00    	je     0x4031e0
4030fa:	39 7e 38             	cmp    %edi,0x38(%esi)
4030fd:	75 1c                	jne    0x40311b
4030ff:	50                   	push   %eax
403100:	0f be c3             	movsbl %bl,%eax
403103:	50                   	push   %eax
403104:	e8 c5 30 00 00       	call   0x4061ce
403109:	59                   	pop    %ecx
40310a:	83 f8 ff             	cmp    $0xffffffff,%eax
40310d:	59                   	pop    %ecx
40310e:	0f 84 cc 00 00 00    	je     0x4031e0
403114:	8b c3                	mov    %ebx,%eax
403116:	e9 c8 00 00 00       	jmp    0x4031e3
40311b:	ff 35 68 d2 40 00    	push   0x40d268
403121:	8b 4e 44             	mov    0x44(%esi),%ecx
403124:	88 5d ff             	mov    %bl,-0x1(%ebp)
403127:	57                   	push   %edi
403128:	e8 4a 04 00 00       	call   0x403577
40312d:	8b 4e 44             	mov    0x44(%esi),%ecx
403130:	57                   	push   %edi
403131:	6a 08                	push   $0x8
403133:	e8 e6 03 00 00       	call   0x40351e
403138:	8b 7e 44             	mov    0x44(%esi),%edi
40313b:	8b cf                	mov    %edi,%ecx
40313d:	e8 21 06 00 00       	call   0x403763
403142:	8b 5e 44             	mov    0x44(%esi),%ebx
403145:	8b 47 04             	mov    0x4(%edi),%eax
403148:	8b cb                	mov    %ebx,%ecx
40314a:	89 45 f8             	mov    %eax,-0x8(%ebp)
40314d:	e8 11 06 00 00       	call   0x403763
403152:	8b 45 f8             	mov    -0x8(%ebp),%eax
403155:	8b 4f 08             	mov    0x8(%edi),%ecx
403158:	8b 5b 04             	mov    0x4(%ebx),%ebx
40315b:	03 c8                	add    %eax,%ecx
40315d:	f7 d8                	neg    %eax
40315f:	1b c0                	sbb    %eax,%eax
403161:	8d 7d f0             	lea    -0x10(%ebp),%edi
403164:	23 c1                	and    %ecx,%eax
403166:	57                   	push   %edi
403167:	8b 4e 38             	mov    0x38(%esi),%ecx
40316a:	50                   	push   %eax
40316b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40316e:	53                   	push   %ebx
40316f:	8b 11                	mov    (%ecx),%edx
403171:	50                   	push   %eax
403172:	8d 45 00             	lea    0x0(%ebp),%eax
403175:	50                   	push   %eax
403176:	8d 45 ff             	lea    -0x1(%ebp),%eax
403179:	50                   	push   %eax
40317a:	8d 46 40             	lea    0x40(%esi),%eax
40317d:	50                   	push   %eax
40317e:	ff 52 14             	call   *0x14(%edx)
403181:	83 e8 00             	sub    $0x0,%eax
403184:	74 25                	je     0x4031ab
403186:	48                   	dec    %eax
403187:	74 1a                	je     0x4031a3
403189:	48                   	dec    %eax
40318a:	48                   	dec    %eax
40318b:	75 53                	jne    0x4031e0
40318d:	0f be 45 ff          	movsbl -0x1(%ebp),%eax
403191:	ff 76 50             	push   0x50(%esi)
403194:	50                   	push   %eax
403195:	e8 34 30 00 00       	call   0x4061ce
40319a:	59                   	pop    %ecx
40319b:	83 f8 ff             	cmp    $0xffffffff,%eax
40319e:	59                   	pop    %ecx
40319f:	74 3f                	je     0x4031e0
4031a1:	eb 38                	jmp    0x4031db
4031a3:	8d 45 ff             	lea    -0x1(%ebp),%eax
4031a6:	39 45 f4             	cmp    %eax,-0xc(%ebp)
4031a9:	74 35                	je     0x4031e0
4031ab:	8b 5e 44             	mov    0x44(%esi),%ebx
4031ae:	8b cb                	mov    %ebx,%ecx
4031b0:	e8 ae 05 00 00       	call   0x403763
4031b5:	8b 7d f0             	mov    -0x10(%ebp),%edi
4031b8:	2b 7b 04             	sub    0x4(%ebx),%edi
4031bb:	8b 5e 44             	mov    0x44(%esi),%ebx
4031be:	8b cb                	mov    %ebx,%ecx
4031c0:	e8 9e 05 00 00       	call   0x403763
4031c5:	ff 76 50             	push   0x50(%esi)
4031c8:	8b 5b 04             	mov    0x4(%ebx),%ebx
4031cb:	6a 01                	push   $0x1
4031cd:	57                   	push   %edi
4031ce:	53                   	push   %ebx
4031cf:	e8 c1 2e 00 00       	call   0x406095
4031d4:	83 c4 10             	add    $0x10,%esp
4031d7:	3b c7                	cmp    %edi,%eax
4031d9:	75 05                	jne    0x4031e0
4031db:	8b 45 08             	mov    0x8(%ebp),%eax
4031de:	eb 03                	jmp    0x4031e3
4031e0:	83 c8 ff             	or     $0xffffffff,%eax
4031e3:	5f                   	pop    %edi
4031e4:	5e                   	pop    %esi
4031e5:	5b                   	pop    %ebx
4031e6:	c9                   	leave
4031e7:	c2 04 00             	ret    $0x4
4031ea:	53                   	push   %ebx
4031eb:	56                   	push   %esi
4031ec:	8b f1                	mov    %ecx,%esi
4031ee:	57                   	push   %edi
4031ef:	8b 46 1c             	mov    0x1c(%esi),%eax
4031f2:	8b 00                	mov    (%eax),%eax
4031f4:	85 c0                	test   %eax,%eax
4031f6:	74 2a                	je     0x403222
4031f8:	8b 4e 0c             	mov    0xc(%esi),%ecx
4031fb:	39 01                	cmp    %eax,(%ecx)
4031fd:	73 23                	jae    0x403222
4031ff:	8b 5c 24 10          	mov    0x10(%esp),%ebx
403203:	83 fb ff             	cmp    $0xffffffff,%ebx
403206:	74 08                	je     0x403210
403208:	0f b6 40 ff          	movzbl -0x1(%eax),%eax
40320c:	3b c3                	cmp    %ebx,%eax
40320e:	75 16                	jne    0x403226
403210:	8b ce                	mov    %esi,%ecx
403212:	e8 7d 04 00 00       	call   0x403694
403217:	8b c3                	mov    %ebx,%eax
403219:	40                   	inc    %eax
40321a:	f7 d8                	neg    %eax
40321c:	1b c0                	sbb    %eax,%eax
40321e:	23 c3                	and    %ebx,%eax
403220:	eb 6f                	jmp    0x403291
403222:	8b 5c 24 10          	mov    0x10(%esp),%ebx
403226:	8b 46 50             	mov    0x50(%esi),%eax
403229:	85 c0                	test   %eax,%eax
40322b:	74 61                	je     0x40328e
40322d:	83 fb ff             	cmp    $0xffffffff,%ebx
403230:	74 5c                	je     0x40328e
403232:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
403236:	75 15                	jne    0x40324d
403238:	50                   	push   %eax
403239:	0f b6 c3             	movzbl %bl,%eax
40323c:	50                   	push   %eax
40323d:	e8 c7 2f 00 00       	call   0x406209
403242:	59                   	pop    %ecx
403243:	83 f8 ff             	cmp    $0xffffffff,%eax
403246:	59                   	pop    %ecx
403247:	74 45                	je     0x40328e
403249:	8b c3                	mov    %ebx,%eax
40324b:	eb 44                	jmp    0x403291
40324d:	8b 7e 44             	mov    0x44(%esi),%edi
403250:	8b 5f 08             	mov    0x8(%edi),%ebx
403253:	85 db                	test   %ebx,%ebx
403255:	76 37                	jbe    0x40328e
403257:	8b cf                	mov    %edi,%ecx
403259:	e8 05 05 00 00       	call   0x403763
40325e:	8b 7f 04             	mov    0x4(%edi),%edi
403261:	53                   	push   %ebx
403262:	ff 76 50             	push   0x50(%esi)
403265:	57                   	push   %edi
403266:	e8 0d 07 00 00       	call   0x403978
40326b:	83 c4 0c             	add    $0xc,%esp
40326e:	84 c0                	test   %al,%al
403270:	74 1c                	je     0x40328e
403272:	ff 35 68 d2 40 00    	push   0x40d268
403278:	8b 4e 44             	mov    0x44(%esi),%ecx
40327b:	6a 00                	push   $0x0
40327d:	e8 f5 02 00 00       	call   0x403577
403282:	8b 46 3c             	mov    0x3c(%esi),%eax
403285:	89 46 40             	mov    %eax,0x40(%esi)
403288:	8b 44 24 10          	mov    0x10(%esp),%eax
40328c:	eb 03                	jmp    0x403291
40328e:	83 c8 ff             	or     $0xffffffff,%eax
403291:	5f                   	pop    %edi
403292:	5e                   	pop    %esi
403293:	5b                   	pop    %ebx
403294:	c2 04 00             	ret    $0x4
403297:	56                   	push   %esi
403298:	8b f1                	mov    %ecx,%esi
40329a:	8b 46 1c             	mov    0x1c(%esi),%eax
40329d:	8b 00                	mov    (%eax),%eax
40329f:	85 c0                	test   %eax,%eax
4032a1:	74 10                	je     0x4032b3
4032a3:	8b 4e 2c             	mov    0x2c(%esi),%ecx
4032a6:	8b 09                	mov    (%ecx),%ecx
4032a8:	03 c8                	add    %eax,%ecx
4032aa:	3b c1                	cmp    %ecx,%eax
4032ac:	73 05                	jae    0x4032b3
4032ae:	0f b6 00             	movzbl (%eax),%eax
4032b1:	5e                   	pop    %esi
4032b2:	c3                   	ret
4032b3:	57                   	push   %edi
4032b4:	8b 3e                	mov    (%esi),%edi
4032b6:	8b ce                	mov    %esi,%ecx
4032b8:	ff 57 14             	call   *0x14(%edi)
4032bb:	50                   	push   %eax
4032bc:	8b ce                	mov    %esi,%ecx
4032be:	ff 57 08             	call   *0x8(%edi)
4032c1:	5f                   	pop    %edi
4032c2:	5e                   	pop    %esi
4032c3:	c3                   	ret
4032c4:	55                   	push   %ebp
4032c5:	8b ec                	mov    %esp,%ebp
4032c7:	83 ec 10             	sub    $0x10,%esp
4032ca:	53                   	push   %ebx
4032cb:	56                   	push   %esi
4032cc:	8b f1                	mov    %ecx,%esi
4032ce:	57                   	push   %edi
4032cf:	8b 46 1c             	mov    0x1c(%esi),%eax
4032d2:	8b 00                	mov    (%eax),%eax
4032d4:	85 c0                	test   %eax,%eax
4032d6:	74 1a                	je     0x4032f2
4032d8:	8b 4e 2c             	mov    0x2c(%esi),%ecx
4032db:	8b 09                	mov    (%ecx),%ecx
4032dd:	03 c8                	add    %eax,%ecx
4032df:	3b c1                	cmp    %ecx,%eax
4032e1:	73 0f                	jae    0x4032f2
4032e3:	8b ce                	mov    %esi,%ecx
4032e5:	e8 ba 03 00 00       	call   0x4036a4
4032ea:	0f b6 00             	movzbl (%eax),%eax
4032ed:	e9 e2 00 00 00       	jmp    0x4033d4
4032f2:	8b 46 50             	mov    0x50(%esi),%eax
4032f5:	85 c0                	test   %eax,%eax
4032f7:	75 08                	jne    0x403301
4032f9:	83 c8 ff             	or     $0xffffffff,%eax
4032fc:	e9 d3 00 00 00       	jmp    0x4033d4
403301:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
403305:	75 14                	jne    0x40331b
403307:	50                   	push   %eax
403308:	e8 93 2f 00 00       	call   0x4062a0
40330d:	83 f8 ff             	cmp    $0xffffffff,%eax
403310:	59                   	pop    %ecx
403311:	74 e6                	je     0x4032f9
403313:	0f b6 c0             	movzbl %al,%eax
403316:	e9 b9 00 00 00       	jmp    0x4033d4
40331b:	8b 46 40             	mov    0x40(%esi),%eax
40331e:	8b 4e 44             	mov    0x44(%esi),%ecx
403321:	89 46 3c             	mov    %eax,0x3c(%esi)
403324:	ff 35 68 d2 40 00    	push   0x40d268
40332a:	6a 00                	push   $0x0
40332c:	e8 46 02 00 00       	call   0x403577
403331:	ff 76 50             	push   0x50(%esi)
403334:	e8 67 2f 00 00       	call   0x4062a0
403339:	83 f8 ff             	cmp    $0xffffffff,%eax
40333c:	59                   	pop    %ecx
40333d:	74 ba                	je     0x4032f9
40333f:	8b 4e 44             	mov    0x44(%esi),%ecx
403342:	50                   	push   %eax
403343:	6a 01                	push   $0x1
403345:	e8 d4 01 00 00       	call   0x40351e
40334a:	8b 7e 44             	mov    0x44(%esi),%edi
40334d:	8b 46 3c             	mov    0x3c(%esi),%eax
403350:	8b cf                	mov    %edi,%ecx
403352:	89 46 40             	mov    %eax,0x40(%esi)
403355:	e8 09 04 00 00       	call   0x403763
40335a:	8b 5e 44             	mov    0x44(%esi),%ebx
40335d:	8b 47 04             	mov    0x4(%edi),%eax
403360:	8b cb                	mov    %ebx,%ecx
403362:	89 45 f8             	mov    %eax,-0x8(%ebp)
403365:	e8 f9 03 00 00       	call   0x403763
40336a:	8b 4f 08             	mov    0x8(%edi),%ecx
40336d:	8b 45 f8             	mov    -0x8(%ebp),%eax
403370:	8d 7d f4             	lea    -0xc(%ebp),%edi
403373:	8b 5b 04             	mov    0x4(%ebx),%ebx
403376:	57                   	push   %edi
403377:	8d 7d 00             	lea    0x0(%ebp),%edi
40337a:	03 c8                	add    %eax,%ecx
40337c:	57                   	push   %edi
40337d:	f7 d8                	neg    %eax
40337f:	8d 7d ff             	lea    -0x1(%ebp),%edi
403382:	1b c0                	sbb    %eax,%eax
403384:	57                   	push   %edi
403385:	8d 7d f0             	lea    -0x10(%ebp),%edi
403388:	23 c1                	and    %ecx,%eax
40338a:	8b 4e 38             	mov    0x38(%esi),%ecx
40338d:	57                   	push   %edi
40338e:	50                   	push   %eax
40338f:	8d 46 40             	lea    0x40(%esi),%eax
403392:	8b 11                	mov    (%ecx),%edx
403394:	53                   	push   %ebx
403395:	50                   	push   %eax
403396:	ff 52 10             	call   *0x10(%edx)
403399:	83 e8 00             	sub    $0x0,%eax
40339c:	74 32                	je     0x4033d0
40339e:	48                   	dec    %eax
40339f:	74 90                	je     0x403331
4033a1:	48                   	dec    %eax
4033a2:	48                   	dec    %eax
4033a3:	0f 85 50 ff ff ff    	jne    0x4032f9
4033a9:	8b 46 44             	mov    0x44(%esi),%eax
4033ac:	83 78 08 01          	cmpl   $0x1,0x8(%eax)
4033b0:	0f 82 7b ff ff ff    	jb     0x403331
4033b6:	8b f0                	mov    %eax,%esi
4033b8:	8b ce                	mov    %esi,%ecx
4033ba:	e8 a4 03 00 00       	call   0x403763
4033bf:	6a 01                	push   $0x1
4033c1:	8d 45 ff             	lea    -0x1(%ebp),%eax
4033c4:	ff 76 04             	push   0x4(%esi)
4033c7:	50                   	push   %eax
4033c8:	e8 93 29 00 00       	call   0x405d60
4033cd:	83 c4 0c             	add    $0xc,%esp
4033d0:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
4033d4:	5f                   	pop    %edi
4033d5:	5e                   	pop    %esi
4033d6:	5b                   	pop    %ebx
4033d7:	c9                   	leave
4033d8:	c3                   	ret
4033d9:	55                   	push   %ebp
4033da:	8b ec                	mov    %esp,%ebp
4033dc:	83 ec 20             	sub    $0x20,%esp
4033df:	56                   	push   %esi
4033e0:	8b f1                	mov    %ecx,%esi
4033e2:	57                   	push   %edi
4033e3:	8b 46 50             	mov    0x50(%esi),%eax
4033e6:	85 c0                	test   %eax,%eax
4033e8:	74 42                	je     0x40342c
4033ea:	ff 75 10             	push   0x10(%ebp)
4033ed:	ff 75 0c             	push   0xc(%ebp)
4033f0:	50                   	push   %eax
4033f1:	e8 fd 2e 00 00       	call   0x4062f3
4033f6:	83 c4 0c             	add    $0xc,%esp
4033f9:	85 c0                	test   %eax,%eax
4033fb:	75 2f                	jne    0x40342c
4033fd:	8d 45 f8             	lea    -0x8(%ebp),%eax
403400:	50                   	push   %eax
403401:	ff 76 50             	push   0x50(%esi)
403404:	e8 c8 2e 00 00       	call   0x4062d1
403409:	59                   	pop    %ecx
40340a:	85 c0                	test   %eax,%eax
40340c:	59                   	pop    %ecx
40340d:	75 1d                	jne    0x40342c
40340f:	21 45 e0             	and    %eax,-0x20(%ebp)
403412:	8b 45 f8             	mov    -0x8(%ebp),%eax
403415:	89 45 e8             	mov    %eax,-0x18(%ebp)
403418:	8b 45 fc             	mov    -0x4(%ebp),%eax
40341b:	89 45 ec             	mov    %eax,-0x14(%ebp)
40341e:	8b 46 40             	mov    0x40(%esi),%eax
403421:	6a 06                	push   $0x6
403423:	89 45 f0             	mov    %eax,-0x10(%ebp)
403426:	59                   	pop    %ecx
403427:	8d 75 e0             	lea    -0x20(%ebp),%esi
40342a:	eb 0f                	jmp    0x40343b
40342c:	6a ff                	push   $0xffffffff
40342e:	8d 4d e0             	lea    -0x20(%ebp),%ecx
403431:	e8 24 02 00 00       	call   0x40365a
403436:	6a 06                	push   $0x6
403438:	8b f0                	mov    %eax,%esi