ab5136:	6a 00                	push   $0x0
ab5138:	6a 04                	push   $0x4
ab513a:	53                   	push   %ebx
ab513b:	ff 75 fc             	push   -0x4(%ebp)
ab513e:	2b f0                	sub    %eax,%esi
ab5140:	1b fa                	sbb    %edx,%edi
ab5142:	e8 7f 5a 97 ff       	call   0x42abc6
ab5147:	03 c6                	add    %esi,%eax
ab5149:	13 d7                	adc    %edi,%edx
ab514b:	83 e8 11             	sub    $0x11,%eax
ab514e:	5f                   	pop    %edi
ab514f:	5e                   	pop    %esi
ab5150:	83 da 00             	sbb    $0x0,%edx
ab5153:	5b                   	pop    %ebx
ab5154:	8b e5                	mov    %ebp,%esp
ab5156:	5d                   	pop    %ebp
ab5157:	c3                   	ret
ab5158:	cc                   	int3
ab5159:	cc                   	int3
ab515a:	cc                   	int3
ab515b:	cc                   	int3
ab515c:	cc                   	int3
ab515d:	cc                   	int3
ab515e:	cc                   	int3
ab515f:	cc                   	int3
ab5160:	cc                   	int3
ab5161:	cc                   	int3
ab5162:	cc                   	int3
ab5163:	cc                   	int3
ab5164:	cc                   	int3
ab5165:	cc                   	int3
ab5166:	cc                   	int3
ab5167:	cc                   	int3
ab5168:	cc                   	int3
ab5169:	cc                   	int3
ab516a:	cc                   	int3
ab516b:	cc                   	int3
ab516c:	cc                   	int3
ab516d:	cc                   	int3
ab516e:	cc                   	int3
ab516f:	cc                   	int3
ab5170:	cc                   	int3
ab5171:	8b ff                	mov    %edi,%edi
ab5173:	55                   	push   %ebp
ab5174:	8b ec                	mov    %esp,%ebp
ab5176:	8b 4d 08             	mov    0x8(%ebp),%ecx
ab5179:	8b c1                	mov    %ecx,%eax
ab517b:	25 03 00 00 80       	and    $0x80000003,%eax
ab5180:	79 05                	jns    0xab5187
ab5182:	48                   	dec    %eax
ab5183:	83 c8 fc             	or     $0xfffffffc,%eax
ab5186:	40                   	inc    %eax
ab5187:	75 12                	jne    0xab519b
ab5189:	56                   	push   %esi
ab518a:	6a 64                	push   $0x64
ab518c:	8b c1                	mov    %ecx,%eax
ab518e:	5e                   	pop    %esi
ab518f:	99                   	cltd
ab5190:	f7 fe                	idiv   %esi
ab5192:	5e                   	pop    %esi
ab5193:	85 d2                	test   %edx,%edx
ab5195:	74 04                	je     0xab519b
ab5197:	b0 01                	mov    $0x1,%al
ab5199:	5d                   	pop    %ebp
ab519a:	c3                   	ret
ab519b:	8d 81 6c 07 00 00    	lea    0x76c(%ecx),%eax
ab51a1:	b9 90 01 00 00       	mov    $0x190,%ecx
ab51a6:	99                   	cltd
ab51a7:	f7 f9                	idiv   %ecx
ab51a9:	f7 da                	neg    %edx
ab51ab:	1a d2                	sbb    %dl,%dl
ab51ad:	8d 42 01             	lea    0x1(%edx),%eax
ab51b0:	5d                   	pop    %ebp
ab51b1:	c3                   	ret
ab51b2:	cc                   	int3
ab51b3:	cc                   	int3
ab51b4:	cc                   	int3
ab51b5:	cc                   	int3
ab51b6:	cc                   	int3
ab51b7:	cc                   	int3
ab51b8:	cc                   	int3
ab51b9:	cc                   	int3
ab51ba:	cc                   	int3
ab51bb:	cc                   	int3
ab51bc:	cc                   	int3
ab51bd:	cc                   	int3
ab51be:	cc                   	int3
ab51bf:	cc                   	int3
ab51c0:	cc                   	int3
ab51c1:	cc                   	int3
ab51c2:	8b ff                	mov    %edi,%edi
ab51c4:	55                   	push   %ebp
ab51c5:	8b ec                	mov    %esp,%ebp
ab51c7:	53                   	push   %ebx
ab51c8:	56                   	push   %esi
ab51c9:	8b 75 0c             	mov    0xc(%ebp),%esi
ab51cc:	33 db                	xor    %ebx,%ebx
ab51ce:	57                   	push   %edi
ab51cf:	8b 7d 08             	mov    0x8(%ebp),%edi
ab51d2:	53                   	push   %ebx
ab51d3:	6a 04                	push   $0x4
ab51d5:	56                   	push   %esi
ab51d6:	57                   	push   %edi
ab51d7:	e8 27 59 97 ff       	call   0x42ab03
ab51dc:	0b c2                	or     %edx,%eax
ab51de:	75 12                	jne    0xab51f2
ab51e0:	53                   	push   %ebx
ab51e1:	6a 64                	push   $0x64
ab51e3:	56                   	push   %esi
ab51e4:	57                   	push   %edi
ab51e5:	e8 19 59 97 ff       	call   0x42ab03
ab51ea:	0b c2                	or     %edx,%eax
ab51ec:	74 04                	je     0xab51f2
ab51ee:	b0 01                	mov    $0x1,%al
ab51f0:	eb 1b                	jmp    0xab520d
ab51f2:	53                   	push   %ebx
ab51f3:	81 c7 6c 07 00 00    	add    $0x76c,%edi
ab51f9:	68 90 01 00 00       	push   $0x190
ab51fe:	13 f3                	adc    %ebx,%esi
ab5200:	56                   	push   %esi
ab5201:	57                   	push   %edi
ab5202:	e8 fc 58 97 ff       	call   0x42ab03
ab5207:	0b c2                	or     %edx,%eax
ab5209:	74 e3                	je     0xab51ee
ab520b:	32 c0                	xor    %al,%al
ab520d:	5f                   	pop    %edi
ab520e:	5e                   	pop    %esi
ab520f:	5b                   	pop    %ebx
ab5210:	5d                   	pop    %ebp
ab5211:	c3                   	ret
ab5212:	cc                   	int3
ab5213:	cc                   	int3
ab5214:	cc                   	int3
ab5215:	cc                   	int3
ab5216:	cc                   	int3
ab5217:	cc                   	int3
ab5218:	cc                   	int3
ab5219:	cc                   	int3
ab521a:	cc                   	int3
ab521b:	cc                   	int3
ab521c:	cc                   	int3
ab521d:	cc                   	int3
ab521e:	cc                   	int3
ab521f:	cc                   	int3
ab5220:	cc                   	int3
ab5221:	cc                   	int3
ab5222:	cc                   	int3
ab5223:	cc                   	int3
ab5224:	cc                   	int3
ab5225:	cc                   	int3
ab5226:	8b ff                	mov    %edi,%edi
ab5228:	55                   	push   %ebp
ab5229:	8b ec                	mov    %esp,%ebp
ab522b:	83 ec 34             	sub    $0x34,%esp
ab522e:	a1 24 f6 d5 00       	mov    0xd5f624,%eax
ab5233:	33 c5                	xor    %ebp,%eax
ab5235:	89 45 fc             	mov    %eax,-0x4(%ebp)
ab5238:	57                   	push   %edi
ab5239:	8b 7d 08             	mov    0x8(%ebp),%edi
ab523c:	85 ff                	test   %edi,%edi
ab523e:	75 18                	jne    0xab5258
ab5240:	e8 2a 96 98 ff       	call   0x43e86f
ab5245:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ab524b:	e8 a8 a0 96 ff       	call   0x41f2f8
ab5250:	83 c8 ff             	or     $0xffffffff,%eax
ab5253:	e9 9a 00 00 00       	jmp    0xab52f2
ab5258:	53                   	push   %ebx
ab5259:	56                   	push   %esi
ab525a:	8b 77 14             	mov    0x14(%edi),%esi
ab525d:	89 75 d4             	mov    %esi,-0x2c(%ebp)
ab5260:	83 fe 45             	cmp    $0x45,%esi
ab5263:	7c 7d                	jl     0xab52e2
ab5265:	bb 8b 00 00 00       	mov    $0x8b,%ebx
ab526a:	3b f3                	cmp    %ebx,%esi
ab526c:	77 74                	ja     0xab52e2
ab526e:	8b 47 10             	mov    0x10(%edi),%eax
ab5271:	85 c0                	test   %eax,%eax
ab5273:	78 05                	js     0xab527a
ab5275:	83 f8 0b             	cmp    $0xb,%eax
ab5278:	7e 25                	jle    0xab529f
ab527a:	6a 0c                	push   $0xc
ab527c:	99                   	cltd
ab527d:	59                   	pop    %ecx
ab527e:	f7 f9                	idiv   %ecx
ab5280:	03 f0                	add    %eax,%esi
ab5282:	89 57 10             	mov    %edx,0x10(%edi)
ab5285:	89 75 d4             	mov    %esi,-0x2c(%ebp)
ab5288:	85 d2                	test   %edx,%edx
ab528a:	79 0a                	jns    0xab5296
ab528c:	8d 42 0c             	lea    0xc(%edx),%eax
ab528f:	4e                   	dec    %esi
ab5290:	89 47 10             	mov    %eax,0x10(%edi)
ab5293:	89 75 d4             	mov    %esi,-0x2c(%ebp)
ab5296:	83 fe 45             	cmp    $0x45,%esi
ab5299:	7c 47                	jl     0xab52e2
ab529b:	3b f3                	cmp    %ebx,%esi
ab529d:	77 43                	ja     0xab52e2
ab529f:	8b 47 10             	mov    0x10(%edi),%eax
ab52a2:	56                   	push   %esi
ab52a3:	8b 1c 85 fc 1f c8 00 	mov    0xc81ffc(,%eax,4),%ebx
ab52aa:	e8 69 38 98 ff       	call   0x438b18
ab52af:	59                   	pop    %ecx
ab52b0:	84 c0                	test   %al,%al
ab52b2:	74 07                	je     0xab52bb
ab52b4:	83 7f 10 01          	cmpl   $0x1,0x10(%edi)
ab52b8:	7e 01                	jle    0xab52bb
ab52ba:	43                   	inc    %ebx
ab52bb:	56                   	push   %esi
ab52bc:	e8 55 ba 95 ff       	call   0x410d16
ab52c1:	59                   	pop    %ecx
ab52c2:	8d 4e ba             	lea    -0x46(%esi),%ecx
ab52c5:	03 c3                	add    %ebx,%eax
ab52c7:	69 c9 6d 01 00 00    	imul   $0x16d,%ecx,%ecx
ab52cd:	03 c8                	add    %eax,%ecx
ab52cf:	8b 47 0c             	mov    0xc(%edi),%eax
ab52d2:	8d 0c 01             	lea    (%ecx,%eax,1),%ecx
ab52d5:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
ab52d8:	78 27                	js     0xab5301
ab52da:	85 c0                	test   %eax,%eax
ab52dc:	78 2b                	js     0xab5309
ab52de:	85 c9                	test   %ecx,%ecx
ab52e0:	79 27                	jns    0xab5309
ab52e2:	e8 88 95 98 ff       	call   0x43e86f
ab52e7:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ab52ed:	83 c8 ff             	or     $0xffffffff,%eax
ab52f0:	5e                   	pop    %esi
ab52f1:	5b                   	pop    %ebx
ab52f2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
ab52f5:	33 cd                	xor    %ebp,%ecx
ab52f7:	5f                   	pop    %edi
ab52f8:	e8 b9 64 96 ff       	call   0x41b7b6
ab52fd:	8b e5                	mov    %ebp,%esp
ab52ff:	5d                   	pop    %ebp
ab5300:	c3                   	ret
ab5301:	85 c0                	test   %eax,%eax
ab5303:	79 04                	jns    0xab5309
ab5305:	85 c9                	test   %ecx,%ecx
ab5307:	79 d9                	jns    0xab52e2
ab5309:	6b f1 18             	imul   $0x18,%ecx,%esi
ab530c:	33 db                	xor    %ebx,%ebx
ab530e:	85 c9                	test   %ecx,%ecx
ab5310:	74 0f                	je     0xab5321
ab5312:	8b c6                	mov    %esi,%eax
ab5314:	99                   	cltd
ab5315:	f7 f9                	idiv   %ecx
ab5317:	33 c9                	xor    %ecx,%ecx
ab5319:	83 f8 18             	cmp    $0x18,%eax
ab531c:	0f 95 c1             	setne  %cl
ab531f:	eb 02                	jmp    0xab5323
ab5321:	8b cb                	mov    %ebx,%ecx
ab5323:	85 c9                	test   %ecx,%ecx
ab5325:	75 bb                	jne    0xab52e2
ab5327:	8b 47 08             	mov    0x8(%edi),%eax
ab532a:	8d 0c 30             	lea    (%eax,%esi,1),%ecx
ab532d:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
ab5330:	85 f6                	test   %esi,%esi
ab5332:	78 0a                	js     0xab533e
ab5334:	85 c0                	test   %eax,%eax
ab5336:	78 0e                	js     0xab5346
ab5338:	85 c9                	test   %ecx,%ecx
ab533a:	78 a6                	js     0xab52e2
ab533c:	eb 08                	jmp    0xab5346
ab533e:	85 c0                	test   %eax,%eax
ab5340:	79 04                	jns    0xab5346
ab5342:	85 c9                	test   %ecx,%ecx
ab5344:	79 9c                	jns    0xab52e2
ab5346:	6b f1 3c             	imul   $0x3c,%ecx,%esi
ab5349:	85 c9                	test   %ecx,%ecx
ab534b:	74 0f                	je     0xab535c
ab534d:	8b c6                	mov    %esi,%eax
ab534f:	99                   	cltd
ab5350:	f7 f9                	idiv   %ecx
ab5352:	33 c9                	xor    %ecx,%ecx
ab5354:	83 f8 3c             	cmp    $0x3c,%eax
ab5357:	0f 95 c1             	setne  %cl
ab535a:	eb 02                	jmp    0xab535e
ab535c:	8b cb                	mov    %ebx,%ecx
ab535e:	85 c9                	test   %ecx,%ecx
ab5360:	75 80                	jne    0xab52e2
ab5362:	8b 47 04             	mov    0x4(%edi),%eax
ab5365:	8d 0c 30             	lea    (%eax,%esi,1),%ecx
ab5368:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
ab536b:	85 f6                	test   %esi,%esi
ab536d:	78 0e                	js     0xab537d
ab536f:	85 c0                	test   %eax,%eax
ab5371:	78 16                	js     0xab5389
ab5373:	85 c9                	test   %ecx,%ecx
ab5375:	0f 88 67 ff ff ff    	js     0xab52e2
ab537b:	eb 0c                	jmp    0xab5389
ab537d:	85 c0                	test   %eax,%eax
ab537f:	79 08                	jns    0xab5389
ab5381:	85 c9                	test   %ecx,%ecx
ab5383:	0f 89 59 ff ff ff    	jns    0xab52e2
ab5389:	6b f1 3c             	imul   $0x3c,%ecx,%esi
ab538c:	85 c9                	test   %ecx,%ecx
ab538e:	74 0f                	je     0xab539f
ab5390:	8b c6                	mov    %esi,%eax
ab5392:	99                   	cltd
ab5393:	f7 f9                	idiv   %ecx
ab5395:	33 c9                	xor    %ecx,%ecx
ab5397:	83 f8 3c             	cmp    $0x3c,%eax
ab539a:	0f 95 c1             	setne  %cl
ab539d:	eb 02                	jmp    0xab53a1
ab539f:	8b cb                	mov    %ebx,%ecx
ab53a1:	85 c9                	test   %ecx,%ecx
ab53a3:	0f 85 39 ff ff ff    	jne    0xab52e2
ab53a9:	8b 0f                	mov    (%edi),%ecx
ab53ab:	8d 04 31             	lea    (%ecx,%esi,1),%eax
ab53ae:	89 45 d4             	mov    %eax,-0x2c(%ebp)
ab53b1:	85 f6                	test   %esi,%esi
ab53b3:	78 0e                	js     0xab53c3
ab53b5:	85 c9                	test   %ecx,%ecx
ab53b7:	78 16                	js     0xab53cf
ab53b9:	85 c0                	test   %eax,%eax
ab53bb:	0f 88 21 ff ff ff    	js     0xab52e2
ab53c1:	eb 0c                	jmp    0xab53cf
ab53c3:	85 c9                	test   %ecx,%ecx
ab53c5:	79 08                	jns    0xab53cf
ab53c7:	85 c0                	test   %eax,%eax
ab53c9:	0f 89 13 ff ff ff    	jns    0xab52e2
ab53cf:	38 5d 0c             	cmp    %bl,0xc(%ebp)
ab53d2:	74 7f                	je     0xab5453
ab53d4:	e8 f9 55 97 ff       	call   0x42a9d2
ab53d9:	8d 45 cc             	lea    -0x34(%ebp),%eax
ab53dc:	89 5d cc             	mov    %ebx,-0x34(%ebp)
ab53df:	50                   	push   %eax
ab53e0:	89 5d d0             	mov    %ebx,-0x30(%ebp)
ab53e3:	e8 12 6b 96 ff       	call   0x41befa
ab53e8:	59                   	pop    %ecx
ab53e9:	85 c0                	test   %eax,%eax
ab53eb:	75 75                	jne    0xab5462
ab53ed:	8d 45 d0             	lea    -0x30(%ebp),%eax
ab53f0:	50                   	push   %eax
ab53f1:	e8 16 93 98 ff       	call   0x43e70c
ab53f6:	59                   	pop    %ecx
ab53f7:	85 c0                	test   %eax,%eax
ab53f9:	75 67                	jne    0xab5462
ab53fb:	8b 45 d0             	mov    -0x30(%ebp),%eax
ab53fe:	01 45 d4             	add    %eax,-0x2c(%ebp)
ab5401:	8d 45 d4             	lea    -0x2c(%ebp),%eax
ab5404:	50                   	push   %eax
ab5405:	8d 45 d8             	lea    -0x28(%ebp),%eax
ab5408:	50                   	push   %eax
ab5409:	e8 cc 09 95 ff       	call   0x405dda
ab540e:	59                   	pop    %ecx
ab540f:	59                   	pop    %ecx
ab5410:	85 c0                	test   %eax,%eax
ab5412:	0f 85 ca fe ff ff    	jne    0xab52e2
ab5418:	8b 47 20             	mov    0x20(%edi),%eax
ab541b:	85 c0                	test   %eax,%eax