40403a:	85 ed                	test   %ebp,%ebp
40403c:	74 42                	je     0x404080
40403e:	6a 00                	push   $0x0
404040:	53                   	push   %ebx
404041:	8b cf                	mov    %edi,%ecx
404043:	e8 3d fa ff ff       	call   0x403a85
404048:	84 c0                	test   %al,%al
40404a:	74 34                	je     0x404080
40404c:	56                   	push   %esi
40404d:	8b cf                	mov    %edi,%ecx
40404f:	e8 15 fd ff ff       	call   0x403d69
404054:	8b 4c 24 14          	mov    0x14(%esp),%ecx
404058:	8b f0                	mov    %eax,%esi
40405a:	55                   	push   %ebp
40405b:	e8 d0 fc ff ff       	call   0x403d30
404060:	03 44 24 1c          	add    0x1c(%esp),%eax
404064:	8b cf                	mov    %edi,%ecx
404066:	50                   	push   %eax
404067:	e8 b8 fc ff ff       	call   0x403d24
40406c:	03 06                	add    (%esi),%eax
40406e:	50                   	push   %eax
40406f:	e8 96 02 00 00       	call   0x40430a
404074:	83 c4 0c             	add    $0xc,%esp
404077:	8b cf                	mov    %edi,%ecx
404079:	53                   	push   %ebx
40407a:	e8 54 f8 ff ff       	call   0x4038d3
40407f:	5e                   	pop    %esi
404080:	5b                   	pop    %ebx
404081:	8b c7                	mov    %edi,%eax
404083:	5f                   	pop    %edi
404084:	5d                   	pop    %ebp
404085:	c2 0c 00             	ret    $0xc
404088:	e8 22 ff ff ff       	call   0x403faf
40408d:	cc                   	int3
40408e:	56                   	push   %esi
40408f:	ff 74 24 08          	push   0x8(%esp)
404093:	8b f1                	mov    %ecx,%esi
404095:	e8 10 07 00 00       	call   0x4047aa
40409a:	59                   	pop    %ecx
40409b:	50                   	push   %eax
40409c:	ff 74 24 0c          	push   0xc(%esp)
4040a0:	8b ce                	mov    %esi,%ecx
4040a2:	e8 04 00 00 00       	call   0x4040ab
4040a7:	5e                   	pop    %esi
4040a8:	c2 04 00             	ret    $0x4
4040ab:	53                   	push   %ebx
4040ac:	8b 5c 24 08          	mov    0x8(%esp),%ebx
4040b0:	57                   	push   %edi
4040b1:	53                   	push   %ebx
4040b2:	8b f9                	mov    %ecx,%edi
4040b4:	e8 9f fb ff ff       	call   0x403c58
4040b9:	8b cf                	mov    %edi,%ecx
4040bb:	84 c0                	test   %al,%al
4040bd:	74 16                	je     0x4040d5
4040bf:	ff 74 24 10          	push   0x10(%esp)
4040c3:	e8 5c fc ff ff       	call   0x403d24
4040c8:	2b d8                	sub    %eax,%ebx
4040ca:	8b cf                	mov    %edi,%ecx
4040cc:	53                   	push   %ebx
4040cd:	57                   	push   %edi
4040ce:	e8 28 ff ff ff       	call   0x403ffb
4040d3:	eb 5c                	jmp    0x404131
4040d5:	56                   	push   %esi
4040d6:	e8 8e fc ff ff       	call   0x403d69
4040db:	8b 74 24 14          	mov    0x14(%esp),%esi
4040df:	8b cf                	mov    %edi,%ecx
4040e1:	8b 00                	mov    (%eax),%eax
4040e3:	f7 d0                	not    %eax
4040e5:	3b c6                	cmp    %esi,%eax
4040e7:	76 4d                	jbe    0x404136
4040e9:	55                   	push   %ebp
4040ea:	e8 7a fc ff ff       	call   0x403d69
4040ef:	8b 28                	mov    (%eax),%ebp
4040f1:	03 ee                	add    %esi,%ebp
4040f3:	85 f6                	test   %esi,%esi
4040f5:	74 36                	je     0x40412d
4040f7:	6a 00                	push   $0x0
4040f9:	55                   	push   %ebp
4040fa:	8b cf                	mov    %edi,%ecx
4040fc:	e8 84 f9 ff ff       	call   0x403a85
404101:	84 c0                	test   %al,%al
404103:	74 28                	je     0x40412d
404105:	8b cf                	mov    %edi,%ecx
404107:	e8 5d fc ff ff       	call   0x403d69
40410c:	ff 74 24 18          	push   0x18(%esp)
404110:	8b cf                	mov    %edi,%ecx
404112:	8b f0                	mov    %eax,%esi
404114:	53                   	push   %ebx
404115:	e8 0a fc ff ff       	call   0x403d24
40411a:	03 06                	add    (%esi),%eax
40411c:	50                   	push   %eax
40411d:	e8 e8 01 00 00       	call   0x40430a
404122:	83 c4 0c             	add    $0xc,%esp
404125:	8b cf                	mov    %edi,%ecx
404127:	55                   	push   %ebp
404128:	e8 a6 f7 ff ff       	call   0x4038d3
40412d:	5d                   	pop    %ebp
40412e:	8b c7                	mov    %edi,%eax
404130:	5e                   	pop    %esi
404131:	5f                   	pop    %edi
404132:	5b                   	pop    %ebx
404133:	c2 08 00             	ret    $0x8
404136:	e8 74 fe ff ff       	call   0x403faf
40413b:	cc                   	int3
40413c:	55                   	push   %ebp
40413d:	8b ec                	mov    %esp,%ebp
40413f:	53                   	push   %ebx
404140:	56                   	push   %esi
404141:	57                   	push   %edi
404142:	8b 7d 0c             	mov    0xc(%ebp),%edi
404145:	8b f1                	mov    %ecx,%esi
404147:	8b 4d 08             	mov    0x8(%ebp),%ecx
40414a:	57                   	push   %edi
40414b:	e8 0f f5 ff ff       	call   0x40365f
404150:	ff 75 10             	push   0x10(%ebp)
404153:	8b 4d 08             	mov    0x8(%ebp),%ecx
404156:	57                   	push   %edi
404157:	e8 1f f5 ff ff       	call   0x40367b
40415c:	8b d8                	mov    %eax,%ebx
40415e:	8b ce                	mov    %esi,%ecx
404160:	3b 75 08             	cmp    0x8(%ebp),%esi
404163:	75 15                	jne    0x40417a
404165:	8d 04 1f             	lea    (%edi,%ebx,1),%eax
404168:	50                   	push   %eax
404169:	e8 9f 04 00 00       	call   0x40460d
40416e:	57                   	push   %edi
40416f:	6a 00                	push   $0x0
404171:	8b ce                	mov    %esi,%ecx
404173:	e8 b2 04 00 00       	call   0x40462a
404178:	eb 30                	jmp    0x4041aa
40417a:	6a 00                	push   $0x0
40417c:	53                   	push   %ebx
40417d:	e8 03 f9 ff ff       	call   0x403a85
404182:	84 c0                	test   %al,%al
404184:	74 24                	je     0x4041aa
404186:	8b 4d 08             	mov    0x8(%ebp),%ecx
404189:	53                   	push   %ebx
40418a:	e8 a1 fb ff ff       	call   0x403d30
40418f:	03 c7                	add    %edi,%eax
404191:	8b ce                	mov    %esi,%ecx
404193:	50                   	push   %eax
404194:	e8 8b fb ff ff       	call   0x403d24
404199:	50                   	push   %eax
40419a:	e8 6b 01 00 00       	call   0x40430a
40419f:	83 c4 0c             	add    $0xc,%esp
4041a2:	8b ce                	mov    %esi,%ecx
4041a4:	53                   	push   %ebx
4041a5:	e8 29 f7 ff ff       	call   0x4038d3
4041aa:	5f                   	pop    %edi
4041ab:	8b c6                	mov    %esi,%eax
4041ad:	5e                   	pop    %esi
4041ae:	5b                   	pop    %ebx
4041af:	5d                   	pop    %ebp
4041b0:	c2 0c 00             	ret    $0xc
4041b3:	56                   	push   %esi
4041b4:	ff 74 24 08          	push   0x8(%esp)
4041b8:	8b f1                	mov    %ecx,%esi
4041ba:	e8 eb 05 00 00       	call   0x4047aa
4041bf:	59                   	pop    %ecx
4041c0:	50                   	push   %eax
4041c1:	ff 74 24 0c          	push   0xc(%esp)
4041c5:	8b ce                	mov    %esi,%ecx
4041c7:	e8 04 00 00 00       	call   0x4041d0
4041cc:	5e                   	pop    %esi
4041cd:	c2 04 00             	ret    $0x4
4041d0:	55                   	push   %ebp
4041d1:	8b ec                	mov    %esp,%ebp
4041d3:	56                   	push   %esi
4041d4:	57                   	push   %edi
4041d5:	8b 7d 08             	mov    0x8(%ebp),%edi
4041d8:	8b f1                	mov    %ecx,%esi
4041da:	57                   	push   %edi
4041db:	e8 78 fa ff ff       	call   0x403c58
4041e0:	8b ce                	mov    %esi,%ecx
4041e2:	84 c0                	test   %al,%al
4041e4:	74 15                	je     0x4041fb
4041e6:	ff 75 0c             	push   0xc(%ebp)
4041e9:	e8 36 fb ff ff       	call   0x403d24
4041ee:	2b f8                	sub    %eax,%edi
4041f0:	8b ce                	mov    %esi,%ecx
4041f2:	57                   	push   %edi
4041f3:	56                   	push   %esi
4041f4:	e8 43 ff ff ff       	call   0x40413c
4041f9:	eb 2e                	jmp    0x404229
4041fb:	6a 00                	push   $0x0
4041fd:	ff 75 0c             	push   0xc(%ebp)
404200:	e8 80 f8 ff ff       	call   0x403a85
404205:	84 c0                	test   %al,%al
404207:	74 1e                	je     0x404227
404209:	ff 75 0c             	push   0xc(%ebp)
40420c:	8b ce                	mov    %esi,%ecx
40420e:	57                   	push   %edi
40420f:	e8 10 fb ff ff       	call   0x403d24
404214:	50                   	push   %eax
404215:	e8 f0 00 00 00       	call   0x40430a
40421a:	83 c4 0c             	add    $0xc,%esp
40421d:	8b ce                	mov    %esi,%ecx
40421f:	ff 75 0c             	push   0xc(%ebp)
404222:	e8 ac f6 ff ff       	call   0x4038d3
404227:	8b c6                	mov    %esi,%eax
404229:	5f                   	pop    %edi
40422a:	5e                   	pop    %esi
40422b:	5d                   	pop    %ebp
40422c:	c2 08 00             	ret    $0x8
40422f:	8b 44 24 08          	mov    0x8(%esp),%eax
404233:	8a 08                	mov    (%eax),%cl
404235:	8b 44 24 04          	mov    0x4(%esp),%eax
404239:	88 08                	mov    %cl,(%eax)
40423b:	c3                   	ret
40423c:	8b 01                	mov    (%ecx),%eax
40423e:	85 c0                	test   %eax,%eax
404240:	75 03                	jne    0x404245
404242:	8d 41 04             	lea    0x4(%ecx),%eax
404245:	c3                   	ret
404246:	e9 e5 fa ff ff       	jmp    0x403d30
40424b:	8b 49 04             	mov    0x4(%ecx),%ecx
40424e:	85 c9                	test   %ecx,%ecx
404250:	75 06                	jne    0x404258
404252:	b8 34 73 42 00       	mov    $0x427334,%eax
404257:	c3                   	ret
404258:	83 c1 18             	add    $0x18,%ecx
40425b:	e9 dc ff ff ff       	jmp    0x40423c
404260:	8b 41 04             	mov    0x4(%ecx),%eax
404263:	c3                   	ret
404264:	8b 41 04             	mov    0x4(%ecx),%eax
404267:	c3                   	ret
404268:	8b 54 24 04          	mov    0x4(%esp),%edx
40426c:	8b c2                	mov    %edx,%eax
40426e:	ff 74 24 08          	push   0x8(%esp)
404272:	83 c8 04             	or     $0x4,%eax
404275:	83 79 38 00          	cmpl   $0x0,0x38(%ecx)
404279:	0f 44 d0             	cmove  %eax,%edx
40427c:	52                   	push   %edx
40427d:	e8 11 00 00 00       	call   0x404293
404282:	c2 08 00             	ret    $0x8
404285:	6a 00                	push   $0x0
404287:	ff 74 24 08          	push   0x8(%esp)
40428b:	e8 03 00 00 00       	call   0x404293
404290:	c2 04 00             	ret    $0x4
404293:	55                   	push   %ebp
404294:	8b ec                	mov    %esp,%ebp
404296:	8b 45 08             	mov    0x8(%ebp),%eax
404299:	83 ec 1c             	sub    $0x1c,%esp
40429c:	83 e0 17             	and    $0x17,%eax
40429f:	89 41 0c             	mov    %eax,0xc(%ecx)
4042a2:	8b 49 10             	mov    0x10(%ecx),%ecx
4042a5:	23 c8                	and    %eax,%ecx
4042a7:	74 51                	je     0x4042fa
4042a9:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
4042ad:	75 51                	jne    0x404300
4042af:	33 d2                	xor    %edx,%edx
4042b1:	42                   	inc    %edx
4042b2:	f6 c1 04             	test   $0x4,%cl
4042b5:	74 21                	je     0x4042d8
4042b7:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4042ba:	e8 28 05 00 00       	call   0x4047e7
4042bf:	50                   	push   %eax
4042c0:	68 38 74 42 00       	push   $0x427438
4042c5:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4042c8:	e8 dd e9 ff ff       	call   0x402caa
4042cd:	68 c0 7b 43 00       	push   $0x437bc0
4042d2:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4042d5:	50                   	push   %eax
4042d6:	eb 2c                	jmp    0x404304
4042d8:	f6 c1 02             	test   $0x2,%cl
4042db:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4042de:	74 0d                	je     0x4042ed
4042e0:	e8 02 05 00 00       	call   0x4047e7
4042e5:	50                   	push   %eax
4042e6:	68 50 74 42 00       	push   $0x427450
4042eb:	eb d8                	jmp    0x4042c5
4042ed:	e8 f5 04 00 00       	call   0x4047e7
4042f2:	50                   	push   %eax
4042f3:	68 68 74 42 00       	push   $0x427468
4042f8:	eb cb                	jmp    0x4042c5
4042fa:	8b e5                	mov    %ebp,%esp
4042fc:	5d                   	pop    %ebp
4042fd:	c2 08 00             	ret    $0x8
404300:	6a 00                	push   $0x0
404302:	6a 00                	push   $0x0
404304:	e8 0d 3d 00 00       	call   0x408016
404309:	cc                   	int3
40430a:	55                   	push   %ebp
40430b:	8b ec                	mov    %esp,%ebp
40430d:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
404311:	75 05                	jne    0x404318
404313:	8b 45 08             	mov    0x8(%ebp),%eax
404316:	5d                   	pop    %ebp
404317:	c3                   	ret
404318:	5d                   	pop    %ebp
404319:	e9 42 41 00 00       	jmp    0x408460
40431e:	55                   	push   %ebp
40431f:	8b ec                	mov    %esp,%ebp
404321:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
404325:	75 05                	jne    0x40432c
404327:	8b 45 08             	mov    0x8(%ebp),%eax
40432a:	5d                   	pop    %ebp
40432b:	c3                   	ret
40432c:	5d                   	pop    %ebp
40432d:	e9 79 13 00 00       	jmp    0x4056ab
404332:	e9 05 00 00 00       	jmp    0x40433c
404337:	e9 12 00 00 00       	jmp    0x40434e
40433c:	8b 54 24 08          	mov    0x8(%esp),%edx
404340:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404344:	6a 01                	push   $0x1
404346:	e8 a1 f4 ff ff       	call   0x4037ec
40434b:	c2 08 00             	ret    $0x8
40434e:	8b 54 24 08          	mov    0x8(%esp),%edx
404352:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404356:	6a 18                	push   $0x18
404358:	e8 8f f4 ff ff       	call   0x4037ec
40435d:	c2 08 00             	ret    $0x8
404360:	8b 54 24 08          	mov    0x8(%esp),%edx
404364:	8b 4c 24 04          	mov    0x4(%esp),%ecx
404368:	6a 02                	push   $0x2
40436a:	e8 7d f4 ff ff       	call   0x4037ec
40436f:	c2 08 00             	ret    $0x8
404372:	51                   	push   %ecx
404373:	ff 74 24 0c          	push   0xc(%esp)
404377:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
40437b:	e8 5d e8 ff ff       	call   0x402bdd
404380:	8b 44 24 04          	mov    0x4(%esp),%eax
404384:	c2 08 00             	ret    $0x8
404387:	8d 41 08             	lea    0x8(%ecx),%eax
40438a:	50                   	push   %eax
40438b:	ff 74 24 10          	push   0x10(%esp)
40438f:	ff 74 24 10          	push   0x10(%esp)
404393:	ff 74 24 10          	push   0x10(%esp)
404397:	e8 aa 18 00 00       	call   0x405c46
40439c:	83 c4 10             	add    $0x10,%esp
40439f:	c2 0c 00             	ret    $0xc
4043a2:	8d 41 08             	lea    0x8(%ecx),%eax
4043a5:	50                   	push   %eax
4043a6:	ff 74 24 0c          	push   0xc(%esp)
4043aa:	e8 73 18 00 00       	call   0x405c22
4043af:	66 85 44 24 0c       	test   %ax,0xc(%esp)
4043b4:	59                   	pop    %ecx
4043b5:	59                   	pop    %ecx
4043b6:	0f 95 c0             	setne  %al
4043b9:	c2 08 00             	ret    $0x8
4043bc:	e9 98 f4 ff ff       	jmp    0x403859
4043c1:	51                   	push   %ecx
4043c2:	55                   	push   %ebp
4043c3:	56                   	push   %esi
4043c4:	8b 74 24 14          	mov    0x14(%esp),%esi
4043c8:	33 ed                	xor    %ebp,%ebp
4043ca:	57                   	push   %edi
4043cb:	8b 7c 24 14          	mov    0x14(%esp),%edi
4043cf:	33 c0                	xor    %eax,%eax
4043d1:	2b f7                	sub    %edi,%esi