430feb:	56                   	push   %esi
430fec:	50                   	push   %eax
430fed:	e8 2c 59 00 00       	call   0x43691e
430ff2:	59                   	pop    %ecx
430ff3:	59                   	pop    %ecx
430ff4:	83 f8 ff             	cmp    $0xffffffff,%eax
430ff7:	74 29                	je     0x431022
430ff9:	ff 45 fc             	incl   -0x4(%ebp)
430ffc:	8b 46 18             	mov    0x18(%esi),%eax
430fff:	4b                   	dec    %ebx
431000:	89 45 f8             	mov    %eax,-0x8(%ebp)
431003:	85 c0                	test   %eax,%eax
431005:	7f 07                	jg     0x43100e
431007:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
43100e:	85 db                	test   %ebx,%ebx
431010:	0f 85 41 ff ff ff    	jne    0x430f57
431016:	8b 45 10             	mov    0x10(%ebp),%eax
431019:	e9 f5 fe ff ff       	jmp    0x430f13
43101e:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
431022:	8b c7                	mov    %edi,%eax
431024:	2b c3                	sub    %ebx,%eax
431026:	33 d2                	xor    %edx,%edx
431028:	f7 75 0c             	divl   0xc(%ebp)
43102b:	e9 e3 fe ff ff       	jmp    0x430f13
431030:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
431034:	8b 45 f4             	mov    -0xc(%ebp),%eax
431037:	eb eb                	jmp    0x431024
431039:	6a 0c                	push   $0xc
43103b:	68 d0 db 46 00       	push   $0x46dbd0
431040:	e8 3b 3d 00 00       	call   0x434d80
431045:	33 f6                	xor    %esi,%esi
431047:	39 75 0c             	cmp    %esi,0xc(%ebp)
43104a:	74 21                	je     0x43106d
43104c:	39 75 10             	cmp    %esi,0x10(%ebp)
43104f:	74 1c                	je     0x43106d
431051:	33 c0                	xor    %eax,%eax
431053:	39 75 14             	cmp    %esi,0x14(%ebp)
431056:	0f 95 c0             	setne  %al
431059:	3b c6                	cmp    %esi,%eax
43105b:	75 18                	jne    0x431075
43105d:	e8 46 39 00 00       	call   0x4349a8
431062:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
431068:	e8 01 33 00 00       	call   0x43436e
43106d:	33 c0                	xor    %eax,%eax
43106f:	e8 51 3d 00 00       	call   0x434dc5
431074:	c3                   	ret
431075:	ff 75 14             	push   0x14(%ebp)
431078:	e8 a2 f3 ff ff       	call   0x43041f
43107d:	59                   	pop    %ecx
43107e:	89 75 fc             	mov    %esi,-0x4(%ebp)
431081:	ff 75 14             	push   0x14(%ebp)
431084:	ff 75 10             	push   0x10(%ebp)
431087:	ff 75 0c             	push   0xc(%ebp)
43108a:	ff 75 08             	push   0x8(%ebp)
43108d:	e8 50 fe ff ff       	call   0x430ee2
431092:	83 c4 10             	add    $0x10,%esp
431095:	89 45 e4             	mov    %eax,-0x1c(%ebp)
431098:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
43109f:	e8 05 00 00 00       	call   0x4310a9
4310a4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4310a7:	eb c6                	jmp    0x43106f
4310a9:	ff 75 14             	push   0x14(%ebp)
4310ac:	e8 e1 f3 ff ff       	call   0x430492
4310b1:	59                   	pop    %ecx
4310b2:	c3                   	ret
4310b3:	8b ff                	mov    %edi,%edi
4310b5:	55                   	push   %ebp
4310b6:	8b ec                	mov    %esp,%ebp
4310b8:	56                   	push   %esi
4310b9:	8b 75 08             	mov    0x8(%ebp),%esi
4310bc:	57                   	push   %edi
4310bd:	83 cf ff             	or     $0xffffffff,%edi
4310c0:	85 f6                	test   %esi,%esi
4310c2:	75 14                	jne    0x4310d8
4310c4:	e8 df 38 00 00       	call   0x4349a8
4310c9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4310cf:	e8 9a 32 00 00       	call   0x43436e
4310d4:	0b c7                	or     %edi,%eax
4310d6:	eb 44                	jmp    0x43111c
4310d8:	f6 46 0c 83          	testb  $0x83,0xc(%esi)
4310dc:	74 38                	je     0x431116
4310de:	56                   	push   %esi
4310df:	e8 24 55 00 00       	call   0x436608
4310e4:	56                   	push   %esi
4310e5:	8b f8                	mov    %eax,%edi
4310e7:	e8 cd 8c 00 00       	call   0x439db9
4310ec:	56                   	push   %esi
4310ed:	e8 20 51 00 00       	call   0x436212
4310f2:	50                   	push   %eax
4310f3:	e8 28 05 00 00       	call   0x431620
4310f8:	83 c4 10             	add    $0x10,%esp
4310fb:	85 c0                	test   %eax,%eax
4310fd:	79 05                	jns    0x431104
4310ff:	83 cf ff             	or     $0xffffffff,%edi
431102:	eb 12                	jmp    0x431116
431104:	8b 46 1c             	mov    0x1c(%esi),%eax
431107:	85 c0                	test   %eax,%eax
431109:	74 0b                	je     0x431116
43110b:	50                   	push   %eax
43110c:	e8 8c f8 ff ff       	call   0x43099d
431111:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
431115:	59                   	pop    %ecx
431116:	83 66 0c 00          	andl   $0x0,0xc(%esi)
43111a:	8b c7                	mov    %edi,%eax
43111c:	5f                   	pop    %edi
43111d:	5e                   	pop    %esi
43111e:	5d                   	pop    %ebp
43111f:	c3                   	ret
431120:	6a 0c                	push   $0xc
431122:	68 f0 db 46 00       	push   $0x46dbf0
431127:	e8 54 3c 00 00       	call   0x434d80
43112c:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
431130:	33 c0                	xor    %eax,%eax
431132:	8b 75 08             	mov    0x8(%ebp),%esi
431135:	85 f6                	test   %esi,%esi
431137:	0f 95 c0             	setne  %al
43113a:	85 c0                	test   %eax,%eax
43113c:	75 15                	jne    0x431153
43113e:	e8 65 38 00 00       	call   0x4349a8
431143:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
431149:	e8 20 32 00 00       	call   0x43436e
43114e:	83 c8 ff             	or     $0xffffffff,%eax
431151:	eb 0d                	jmp    0x431160
431153:	f6 46 0c 40          	testb  $0x40,0xc(%esi)
431157:	74 0d                	je     0x431166
431159:	83 66 0c 00          	andl   $0x0,0xc(%esi)
43115d:	8b 45 e4             	mov    -0x1c(%ebp),%eax
431160:	e8 60 3c 00 00       	call   0x434dc5
431165:	c3                   	ret
431166:	56                   	push   %esi
431167:	e8 b3 f2 ff ff       	call   0x43041f
43116c:	59                   	pop    %ecx
43116d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
431171:	56                   	push   %esi
431172:	e8 3c ff ff ff       	call   0x4310b3
431177:	59                   	pop    %ecx
431178:	89 45 e4             	mov    %eax,-0x1c(%ebp)
43117b:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
431182:	e8 05 00 00 00       	call   0x43118c
431187:	eb d4                	jmp    0x43115d
431189:	8b 75 08             	mov    0x8(%ebp),%esi
43118c:	56                   	push   %esi
43118d:	e8 00 f3 ff ff       	call   0x430492
431192:	59                   	pop    %ecx
431193:	c3                   	ret
431194:	6a 0c                	push   $0xc
431196:	68 10 dc 46 00       	push   $0x46dc10
43119b:	e8 e0 3b 00 00       	call   0x434d80
4311a0:	33 ff                	xor    %edi,%edi
4311a2:	89 7d e4             	mov    %edi,-0x1c(%ebp)
4311a5:	33 c0                	xor    %eax,%eax
4311a7:	8b 5d 08             	mov    0x8(%ebp),%ebx
4311aa:	3b df                	cmp    %edi,%ebx
4311ac:	0f 95 c0             	setne  %al
4311af:	3b c7                	cmp    %edi,%eax
4311b1:	75 14                	jne    0x4311c7
4311b3:	e8 f0 37 00 00       	call   0x4349a8
4311b8:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4311be:	e8 ab 31 00 00       	call   0x43436e
4311c3:	33 c0                	xor    %eax,%eax
4311c5:	eb 7b                	jmp    0x431242
4311c7:	33 c0                	xor    %eax,%eax
4311c9:	8b 75 0c             	mov    0xc(%ebp),%esi
4311cc:	3b f7                	cmp    %edi,%esi
4311ce:	0f 95 c0             	setne  %al
4311d1:	3b c7                	cmp    %edi,%eax
4311d3:	74 de                	je     0x4311b3
4311d5:	33 c0                	xor    %eax,%eax
4311d7:	66 39 3e             	cmp    %di,(%esi)
4311da:	0f 95 c0             	setne  %al
4311dd:	3b c7                	cmp    %edi,%eax
4311df:	74 d2                	je     0x4311b3
4311e1:	e8 bd 8e 00 00       	call   0x43a0a3
4311e6:	89 45 08             	mov    %eax,0x8(%ebp)
4311e9:	3b c7                	cmp    %edi,%eax
4311eb:	75 0d                	jne    0x4311fa
4311ed:	e8 b6 37 00 00       	call   0x4349a8
4311f2:	c7 00 18 00 00 00    	movl   $0x18,(%eax)
4311f8:	eb c9                	jmp    0x4311c3
4311fa:	89 7d fc             	mov    %edi,-0x4(%ebp)
4311fd:	66 39 3b             	cmp    %di,(%ebx)
431200:	75 20                	jne    0x431222
431202:	e8 a1 37 00 00       	call   0x4349a8
431207:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
43120d:	6a fe                	push   $0xfffffffe
43120f:	8d 45 f0             	lea    -0x10(%ebp),%eax
431212:	50                   	push   %eax
431213:	68 a8 f6 46 00       	push   $0x46f6a8
431218:	e8 c3 8f 00 00       	call   0x43a1e0
43121d:	83 c4 0c             	add    $0xc,%esp
431220:	eb a1                	jmp    0x4311c3
431222:	50                   	push   %eax
431223:	ff 75 10             	push   0x10(%ebp)
431226:	56                   	push   %esi
431227:	53                   	push   %ebx
431228:	e8 bd 8b 00 00       	call   0x439dea
43122d:	83 c4 10             	add    $0x10,%esp
431230:	89 45 e4             	mov    %eax,-0x1c(%ebp)
431233:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
43123a:	e8 09 00 00 00       	call   0x431248
43123f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
431242:	e8 7e 3b 00 00       	call   0x434dc5
431247:	c3                   	ret
431248:	ff 75 08             	push   0x8(%ebp)
43124b:	e8 42 f2 ff ff       	call   0x430492
431250:	59                   	pop    %ecx
431251:	c3                   	ret
431252:	8b ff                	mov    %edi,%edi
431254:	55                   	push   %ebp
431255:	8b ec                	mov    %esp,%ebp
431257:	6a 40                	push   $0x40
431259:	ff 75 0c             	push   0xc(%ebp)
43125c:	ff 75 08             	push   0x8(%ebp)
43125f:	e8 30 ff ff ff       	call   0x431194
431264:	83 c4 0c             	add    $0xc,%esp
431267:	5d                   	pop    %ebp
431268:	c3                   	ret
431269:	8b ff                	mov    %edi,%edi
43126b:	55                   	push   %ebp
43126c:	8b ec                	mov    %esp,%ebp
43126e:	56                   	push   %esi
43126f:	8b 75 08             	mov    0x8(%ebp),%esi
431272:	85 f6                	test   %esi,%esi
431274:	75 13                	jne    0x431289
431276:	e8 2d 37 00 00       	call   0x4349a8
43127b:	6a 16                	push   $0x16
43127d:	5e                   	pop    %esi
43127e:	89 30                	mov    %esi,(%eax)
431280:	e8 e9 30 00 00       	call   0x43436e
431285:	8b c6                	mov    %esi,%eax
431287:	eb 24                	jmp    0x4312ad
431289:	68 80 00 00 00       	push   $0x80
43128e:	ff 75 10             	push   0x10(%ebp)
431291:	ff 75 0c             	push   0xc(%ebp)
431294:	e8 fb fe ff ff       	call   0x431194
431299:	83 c4 0c             	add    $0xc,%esp
43129c:	89 06                	mov    %eax,(%esi)
43129e:	85 c0                	test   %eax,%eax
4312a0:	74 04                	je     0x4312a6
4312a2:	33 c0                	xor    %eax,%eax
4312a4:	eb 07                	jmp    0x4312ad
4312a6:	e8 fd 36 00 00       	call   0x4349a8
4312ab:	8b 00                	mov    (%eax),%eax
4312ad:	5e                   	pop    %esi
4312ae:	5d                   	pop    %ebp
4312af:	c3                   	ret
4312b0:	8b ff                	mov    %edi,%edi
4312b2:	55                   	push   %ebp
4312b3:	8b ec                	mov    %esp,%ebp
4312b5:	8b 45 08             	mov    0x8(%ebp),%eax
4312b8:	85 c0                	test   %eax,%eax
4312ba:	75 14                	jne    0x4312d0
4312bc:	e8 e7 36 00 00       	call   0x4349a8
4312c1:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4312c7:	e8 a2 30 00 00       	call   0x43436e
4312cc:	33 c0                	xor    %eax,%eax
4312ce:	5d                   	pop    %ebp
4312cf:	c3                   	ret
4312d0:	8b 40 0c             	mov    0xc(%eax),%eax
4312d3:	83 e0 10             	and    $0x10,%eax
4312d6:	5d                   	pop    %ebp
4312d7:	c3                   	ret
4312d8:	8b ff                	mov    %edi,%edi
4312da:	55                   	push   %ebp
4312db:	8b ec                	mov    %esp,%ebp
4312dd:	8b 45 08             	mov    0x8(%ebp),%eax
4312e0:	85 c0                	test   %eax,%eax
4312e2:	75 14                	jne    0x4312f8
4312e4:	e8 bf 36 00 00       	call   0x4349a8
4312e9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4312ef:	e8 7a 30 00 00       	call   0x43436e
4312f4:	33 c0                	xor    %eax,%eax
4312f6:	5d                   	pop    %ebp
4312f7:	c3                   	ret
4312f8:	8b 40 0c             	mov    0xc(%eax),%eax
4312fb:	83 e0 20             	and    $0x20,%eax
4312fe:	5d                   	pop    %ebp
4312ff:	c3                   	ret
431300:	8b ff                	mov    %edi,%edi
431302:	55                   	push   %ebp
431303:	8b ec                	mov    %esp,%ebp
431305:	83 ec 10             	sub    $0x10,%esp
431308:	8b 4d 08             	mov    0x8(%ebp),%ecx
43130b:	53                   	push   %ebx
43130c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
43130f:	56                   	push   %esi
431310:	57                   	push   %edi
431311:	8b 7d 10             	mov    0x10(%ebp),%edi
431314:	89 4d f8             	mov    %ecx,-0x8(%ebp)
431317:	89 5d fc             	mov    %ebx,-0x4(%ebp)
43131a:	85 ff                	test   %edi,%edi
43131c:	74 1a                	je     0x431338
43131e:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
431322:	74 14                	je     0x431338
431324:	85 c9                	test   %ecx,%ecx
431326:	75 17                	jne    0x43133f
431328:	e8 7b 36 00 00       	call   0x4349a8
43132d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
431333:	e8 36 30 00 00       	call   0x43436e
431338:	33 c0                	xor    %eax,%eax
43133a:	5f                   	pop    %edi
43133b:	5e                   	pop    %esi
43133c:	5b                   	pop    %ebx
43133d:	c9                   	leave
43133e:	c3                   	ret
43133f:	8b 75 18             	mov    0x18(%ebp),%esi
431342:	85 f6                	test   %esi,%esi
431344:	74 0c                	je     0x431352
431346:	83 c8 ff             	or     $0xffffffff,%eax
431349:	33 d2                	xor    %edx,%edx
43134b:	f7 f7                	div    %edi
43134d:	39 45 14             	cmp    %eax,0x14(%ebp)
431350:	76 21                	jbe    0x431373
431352:	83 fb ff             	cmp    $0xffffffff,%ebx
431355:	74 0c                	je     0x431363
431357:	53                   	push   %ebx
431358:	6a 00                	push   $0x0
43135a:	51                   	push   %ecx
43135b:	e8 10 f8 ff ff       	call   0x430b70
431360:	83 c4 0c             	add    $0xc,%esp
431363:	85 f6                	test   %esi,%esi
431365:	74 c1                	je     0x431328
431367:	83 c8 ff             	or     $0xffffffff,%eax
43136a:	33 d2                	xor    %edx,%edx
43136c:	f7 f7                	div    %edi
43136e:	39 45 14             	cmp    %eax,0x14(%ebp)
431371:	77 b5                	ja     0x431328
431373:	0f af 7d 14          	imul   0x14(%ebp),%edi
431377:	f7 46 0c 0c 01 00 00 	testl  $0x10c,0xc(%esi)
43137e:	89 7d f0             	mov    %edi,-0x10(%ebp)
431381:	8b df                	mov    %edi,%ebx
431383:	74 08                	je     0x43138d
431385:	8b 46 18             	mov    0x18(%esi),%eax
431388:	89 45 f4             	mov    %eax,-0xc(%ebp)
43138b:	eb 07                	jmp    0x431394
43138d:	c7 45 f4 00 10 00 00 	movl   $0x1000,-0xc(%ebp)
431394:	85 ff                	test   %edi,%edi
431396:	0f 84 da 00 00 00    	je     0x431476
43139c:	f7 46 0c 0c 01 00 00 	testl  $0x10c,0xc(%esi)
4313a3:	74 44                	je     0x4313e9
4313a5:	8b 46 04             	mov    0x4(%esi),%eax
4313a8:	85 c0                	test   %eax,%eax
4313aa:	74 3d                	je     0x4313e9
4313ac:	0f 88 f2 00 00 00    	js     0x4314a4
4313b2:	8b fb                	mov    %ebx,%edi
4313b4:	3b d8                	cmp    %eax,%ebx
4313b6:	72 02                	jb     0x4313ba
4313b8:	8b f8                	mov    %eax,%edi
4313ba:	3b 7d fc             	cmp    -0x4(%ebp),%edi
4313bd:	0f 87 bb 00 00 00    	ja     0x43147e