429046:	8b 71 08             	mov    0x8(%ecx),%esi
429049:	85 f6                	test   %esi,%esi
42904b:	74 2b                	je     0x429078
42904d:	8b 55 08             	mov    0x8(%ebp),%edx
429050:	3b 51 04             	cmp    0x4(%ecx),%edx
429053:	73 23                	jae    0x429078
429055:	8b ca                	mov    %edx,%ecx
429057:	b0 01                	mov    $0x1,%al
429059:	83 e1 07             	and    $0x7,%ecx
42905c:	c1 ea 03             	shr    $0x3,%edx
42905f:	d2 e0                	shl    %cl,%al
429061:	b9 00 00 00 00       	mov    $0x0,%ecx
429066:	84 04 32             	test   %al,(%edx,%esi,1)
429069:	8b 45 0c             	mov    0xc(%ebp),%eax
42906c:	0f 95 c1             	setne  %cl
42906f:	5e                   	pop    %esi
429070:	89 08                	mov    %ecx,(%eax)
429072:	33 c0                	xor    %eax,%eax
429074:	5d                   	pop    %ebp
429075:	c2 08 00             	ret    $0x8
429078:	b8 01 00 00 00       	mov    $0x1,%eax
42907d:	5e                   	pop    %esi
42907e:	5d                   	pop    %ebp
42907f:	c2 08 00             	ret    $0x8
429082:	cc                   	int3
429083:	cc                   	int3
429084:	cc                   	int3
429085:	cc                   	int3
429086:	cc                   	int3
429087:	cc                   	int3
429088:	cc                   	int3
429089:	cc                   	int3
42908a:	cc                   	int3
42908b:	cc                   	int3
42908c:	cc                   	int3
42908d:	cc                   	int3
42908e:	cc                   	int3
42908f:	cc                   	int3
429090:	8b ff                	mov    %edi,%edi
429092:	55                   	push   %ebp
429093:	8b ec                	mov    %esp,%ebp
429095:	51                   	push   %ecx
429096:	56                   	push   %esi
429097:	8b f1                	mov    %ecx,%esi
429099:	3b d6                	cmp    %esi,%edx
42909b:	72 32                	jb     0x4290cf
42909d:	52                   	push   %edx
42909e:	6a 00                	push   $0x0
4290a0:	ff 35 00 12 45 00    	push   0x451200
4290a6:	ff 15 24 21 45 00    	call   *0x452124
4290ac:	89 45 fc             	mov    %eax,-0x4(%ebp)
4290af:	85 c0                	test   %eax,%eax
4290b1:	74 1c                	je     0x4290cf
4290b3:	53                   	push   %ebx
4290b4:	8d 1c 30             	lea    (%eax,%esi,1),%ebx
4290b7:	33 d2                	xor    %edx,%edx
4290b9:	8b c3                	mov    %ebx,%eax
4290bb:	f7 f6                	div    %esi
4290bd:	2b da                	sub    %edx,%ebx
4290bf:	8a cb                	mov    %bl,%cl
4290c1:	8b c3                	mov    %ebx,%eax
4290c3:	2a 4d fc             	sub    -0x4(%ebp),%cl
4290c6:	88 4b ff             	mov    %cl,-0x1(%ebx)
4290c9:	5b                   	pop    %ebx
4290ca:	5e                   	pop    %esi
4290cb:	8b e5                	mov    %ebp,%esp
4290cd:	5d                   	pop    %ebp
4290ce:	c3                   	ret
4290cf:	33 c0                	xor    %eax,%eax
4290d1:	5e                   	pop    %esi
4290d2:	8b e5                	mov    %ebp,%esp
4290d4:	5d                   	pop    %ebp
4290d5:	c3                   	ret
4290d6:	cc                   	int3
4290d7:	cc                   	int3
4290d8:	cc                   	int3
4290d9:	cc                   	int3
4290da:	cc                   	int3
4290db:	cc                   	int3
4290dc:	cc                   	int3
4290dd:	cc                   	int3
4290de:	cc                   	int3
4290df:	cc                   	int3
4290e0:	8b ff                	mov    %edi,%edi
4290e2:	55                   	push   %ebp
4290e3:	8b ec                	mov    %esp,%ebp
4290e5:	83 ec 40             	sub    $0x40,%esp
4290e8:	a1 e4 f8 44 00       	mov    0x44f8e4,%eax
4290ed:	33 c5                	xor    %ebp,%eax
4290ef:	89 45 f8             	mov    %eax,-0x8(%ebp)
4290f2:	a1 d8 12 45 00       	mov    0x4512d8,%eax
4290f7:	33 d2                	xor    %edx,%edx
4290f9:	53                   	push   %ebx
4290fa:	56                   	push   %esi
4290fb:	8b 35 c8 19 45 00    	mov    0x4519c8,%esi
429101:	89 45 e8             	mov    %eax,-0x18(%ebp)
429104:	57                   	push   %edi
429105:	8b 7d 08             	mov    0x8(%ebp),%edi
429108:	8b 4d 0c             	mov    0xc(%ebp),%ecx
42910b:	c7 05 dc 12 45 00 00 	movl   $0x0,0x4512dc
429112:	00 00 00
429115:	8d 47 ff             	lea    -0x1(%edi),%eax
429118:	03 c6                	add    %esi,%eax
42911a:	f7 f6                	div    %esi
42911c:	33 d2                	xor    %edx,%edx
42911e:	8b d8                	mov    %eax,%ebx
429120:	8d 41 ff             	lea    -0x1(%ecx),%eax
429123:	03 c6                	add    %esi,%eax
429125:	0f af de             	imul   %esi,%ebx
429128:	f7 f6                	div    %esi
42912a:	89 5d f0             	mov    %ebx,-0x10(%ebp)
42912d:	0f af c6             	imul   %esi,%eax
429130:	89 45 e0             	mov    %eax,-0x20(%ebp)
429133:	3b c1                	cmp    %ecx,%eax
429135:	0f 82 9c 02 00 00    	jb     0x4293d7
42913b:	3b df                	cmp    %edi,%ebx
42913d:	0f 82 94 02 00 00    	jb     0x4293d7
429143:	33 d2                	xor    %edx,%edx
429145:	f7 f3                	div    %ebx
429147:	8b d8                	mov    %eax,%ebx
429149:	81 fb ff ff ff 1f    	cmp    $0x1fffffff,%ebx
42914f:	0f 87 82 02 00 00    	ja     0x4293d7
429155:	8d 04 dd 00 00 00 00 	lea    0x0(,%ebx,8),%eax
42915c:	e8 af 46 02 00       	call   0x44d810
429161:	8b fc                	mov    %esp,%edi
429163:	89 7d ec             	mov    %edi,-0x14(%ebp)
429166:	8d 04 9f             	lea    (%edi,%ebx,4),%eax
429169:	89 45 dc             	mov    %eax,-0x24(%ebp)
42916c:	8d 64 24 00          	lea    0x0(%esp),%esp
429170:	6a 04                	push   $0x4
429172:	68 00 20 00 00       	push   $0x2000
429177:	ff 75 e0             	push   -0x20(%ebp)
42917a:	6a 00                	push   $0x0
42917c:	ff 15 8c 21 45 00    	call   *0x45218c
429182:	8b f0                	mov    %eax,%esi
429184:	85 f6                	test   %esi,%esi
429186:	0f 84 4b 02 00 00    	je     0x4293d7
42918c:	68 00 80 00 00       	push   $0x8000
429191:	6a 00                	push   $0x0
429193:	56                   	push   %esi
429194:	ff 15 84 21 45 00    	call   *0x452184
42919a:	85 c0                	test   %eax,%eax
42919c:	75 06                	jne    0x4291a4
42919e:	ff 15 6c 20 45 00    	call   *0x45206c
4291a4:	85 db                	test   %ebx,%ebx
4291a6:	74 20                	je     0x4291c8
4291a8:	8d 0c 9f             	lea    (%edi,%ebx,4),%ecx
4291ab:	8b d7                	mov    %edi,%edx
4291ad:	8b c1                	mov    %ecx,%eax
4291af:	2b d1                	sub    %ecx,%edx
4291b1:	8b cb                	mov    %ebx,%ecx
4291b3:	89 34 02             	mov    %esi,(%edx,%eax,1)
4291b6:	8d 40 04             	lea    0x4(%eax),%eax
4291b9:	03 75 f0             	add    -0x10(%ebp),%esi
4291bc:	c7 40 fc 00 00 00 00 	movl   $0x0,-0x4(%eax)
4291c3:	83 e9 01             	sub    $0x1,%ecx
4291c6:	75 eb                	jne    0x4291b3
4291c8:	8b 0d c8 19 45 00    	mov    0x4519c8,%ecx
4291ce:	33 d2                	xor    %edx,%edx
4291d0:	8b 45 f0             	mov    -0x10(%ebp),%eax
4291d3:	33 f6                	xor    %esi,%esi
4291d5:	48                   	dec    %eax
4291d6:	03 c1                	add    %ecx,%eax
4291d8:	f7 f1                	div    %ecx
4291da:	56                   	push   %esi
4291db:	0f af c1             	imul   %ecx,%eax
4291de:	50                   	push   %eax
4291df:	56                   	push   %esi
4291e0:	68 04 00 00 04       	push   $0x4000004
4291e5:	56                   	push   %esi
4291e6:	6a ff                	push   $0xffffffff
4291e8:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4291eb:	ff 15 88 21 45 00    	call   *0x452188
4291f1:	8b d0                	mov    %eax,%edx
4291f3:	89 55 f4             	mov    %edx,-0xc(%ebp)
4291f6:	85 d2                	test   %edx,%edx
4291f8:	0f 84 d2 01 00 00    	je     0x4293d0
4291fe:	85 db                	test   %ebx,%ebx
429200:	74 6e                	je     0x429270
429202:	8b 4d dc             	mov    -0x24(%ebp),%ecx
429205:	2b 4d ec             	sub    -0x14(%ebp),%ecx
429208:	89 4d d8             	mov    %ecx,-0x28(%ebp)
42920b:	eb 03                	jmp    0x429210
42920d:	8d 49 00             	lea    0x0(%ecx),%ecx
429210:	ff 37                	push   (%edi)
429212:	33 c0                	xor    %eax,%eax
429214:	39 04 39             	cmp    %eax,(%ecx,%edi,1)
429217:	6a 00                	push   $0x0
429219:	0f 95 c0             	setne  %al
42921c:	6a 00                	push   $0x0
42921e:	6a 00                	push   $0x0
429220:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
429227:	50                   	push   %eax
429228:	52                   	push   %edx
429229:	ff 15 80 21 45 00    	call   *0x452180
42922f:	85 c0                	test   %eax,%eax
429231:	74 12                	je     0x429245
429233:	8b 55 f4             	mov    -0xc(%ebp),%edx
429236:	46                   	inc    %esi
429237:	89 07                	mov    %eax,(%edi)
429239:	83 c7 04             	add    $0x4,%edi
42923c:	3b f3                	cmp    %ebx,%esi
42923e:	73 2d                	jae    0x42926d
429240:	8b 4d d8             	mov    -0x28(%ebp),%ecx
429243:	eb cb                	jmp    0x429210
429245:	8b 7d ec             	mov    -0x14(%ebp),%edi
429248:	85 f6                	test   %esi,%esi
42924a:	74 13                	je     0x42925f
42924c:	8d 64 24 00          	lea    0x0(%esp),%esp
429250:	ff 74 b7 fc          	push   -0x4(%edi,%esi,4)
429254:	4e                   	dec    %esi
429255:	ff 15 7c 21 45 00    	call   *0x45217c
42925b:	85 f6                	test   %esi,%esi
42925d:	75 f1                	jne    0x429250
42925f:	ff 75 f4             	push   -0xc(%ebp)
429262:	ff 15 10 21 45 00    	call   *0x452110
429268:	e9 03 ff ff ff       	jmp    0x429170
42926d:	8b 7d ec             	mov    -0x14(%ebp),%edi
429270:	52                   	push   %edx
429271:	ff 15 10 21 45 00    	call   *0x452110
429277:	8b 4d e8             	mov    -0x18(%ebp),%ecx
42927a:	8b 07                	mov    (%edi),%eax
42927c:	8b 55 e4             	mov    -0x1c(%ebp),%edx
42927f:	6a 04                	push   $0x4
429281:	68 00 10 00 00       	push   $0x1000
429286:	ff 75 f0             	push   -0x10(%ebp)
429289:	89 01                	mov    %eax,(%ecx)
42928b:	50                   	push   %eax
42928c:	89 51 04             	mov    %edx,0x4(%ecx)
42928f:	89 59 08             	mov    %ebx,0x8(%ecx)
429292:	ff 15 8c 21 45 00    	call   *0x45218c
429298:	f7 d8                	neg    %eax
42929a:	1b c0                	sbb    %eax,%eax
42929c:	f7 d8                	neg    %eax
42929e:	83 3d f4 1c 45 00 00 	cmpl   $0x0,0x451cf4
4292a5:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4292a8:	0f 85 b0 00 00 00    	jne    0x42935e
4292ae:	b8 08 90 ff ff       	mov    $0xffff9008,%eax
4292b3:	c7 45 c0 60 30 41 00 	movl   $0x413060,-0x40(%ebp)
4292ba:	66 89 45 cc          	mov    %ax,-0x34(%ebp)
4292be:	33 d2                	xor    %edx,%edx
4292c0:	83 c8 ff             	or     $0xffffffff,%eax
4292c3:	c7 45 c8 20 ee 43 00 	movl   $0x43ee20,-0x38(%ebp)
4292ca:	66 89 45 ce          	mov    %ax,-0x32(%ebp)
4292ce:	b9 60 30 41 00       	mov    $0x413060,%ecx
4292d3:	8d 45 f0             	lea    -0x10(%ebp),%eax
4292d6:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
4292dd:	50                   	push   %eax
4292de:	8d 45 ce             	lea    -0x32(%ebp),%eax
4292e1:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
4292e8:	50                   	push   %eax
4292e9:	68 18 30 41 00       	push   $0x413018
4292ee:	e8 ed 61 01 00       	call   0x43f4e0
4292f3:	8b 75 f0             	mov    -0x10(%ebp),%esi
4292f6:	85 f6                	test   %esi,%esi
4292f8:	75 03                	jne    0x4292fd
4292fa:	8b 75 c8             	mov    -0x38(%ebp),%esi
4292fd:	8d 45 f4             	lea    -0xc(%ebp),%eax
429300:	50                   	push   %eax
429301:	ff 15 c4 21 45 00    	call   *0x4521c4
429307:	50                   	push   %eax
429308:	8b ce                	mov    %esi,%ecx
42930a:	ff 15 84 23 45 00    	call   *0x452384
429310:	ff d6                	call   *%esi
429312:	85 c0                	test   %eax,%eax
429314:	74 10                	je     0x429326
429316:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
42931a:	74 0a                	je     0x429326
42931c:	c7 05 f8 1c 45 00 01 	movl   $0x1,0x451cf8
429323:	00 00 00
429326:	f7 45 cc 00 10 00 00 	testl  $0x1000,-0x34(%ebp)
42932d:	c7 05 f4 1c 45 00 01 	movl   $0x1,0x451cf4
429334:	00 00 00
429337:	74 25                	je     0x42935e
429339:	66 8b 45 ce          	mov    -0x32(%ebp),%ax
42933d:	66 83 f8 ff          	cmp    $0xffff,%ax
429341:	74 1b                	je     0x42935e
429343:	0f bf c8             	movswl %ax,%ecx
429346:	8b 45 c0             	mov    -0x40(%ebp),%eax
429349:	8d 04 48             	lea    (%eax,%ecx,2),%eax
42934c:	50                   	push   %eax
42934d:	ff 15 64 21 45 00    	call   *0x452164
429353:	85 c0                	test   %eax,%eax
429355:	74 07                	je     0x42935e
429357:	50                   	push   %eax
429358:	ff 15 60 21 45 00    	call   *0x452160
42935e:	83 3d f8 1c 45 00 00 	cmpl   $0x0,0x451cf8
429365:	74 2f                	je     0x429396
429367:	8b 45 e8             	mov    -0x18(%ebp),%eax
42936a:	be 01 00 00 00       	mov    $0x1,%esi
42936f:	39 70 08             	cmp    %esi,0x8(%eax)
429372:	76 22                	jbe    0x429396
429374:	8b f8                	mov    %eax,%edi
429376:	8b 47 04             	mov    0x4(%edi),%eax
429379:	6a 04                	push   $0x4
42937b:	68 00 10 00 00       	push   $0x1000
429380:	50                   	push   %eax
429381:	0f af c6             	imul   %esi,%eax
429384:	03 07                	add    (%edi),%eax
429386:	50                   	push   %eax
429387:	ff 15 8c 21 45 00    	call   *0x45218c
42938d:	46                   	inc    %esi
42938e:	3b 77 08             	cmp    0x8(%edi),%esi
429391:	72 e3                	jb     0x429376
429393:	8b 7d ec             	mov    -0x14(%ebp),%edi
429396:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
42939a:	75 29                	jne    0x4293c5
42939c:	33 f6                	xor    %esi,%esi
42939e:	85 db                	test   %ebx,%ebx
4293a0:	74 13                	je     0x4293b5
4293a2:	8b 04 b7             	mov    (%edi,%esi,4),%eax
4293a5:	85 c0                	test   %eax,%eax
4293a7:	74 07                	je     0x4293b0
4293a9:	50                   	push   %eax
4293aa:	ff 15 7c 21 45 00    	call   *0x45217c
4293b0:	46                   	inc    %esi
4293b1:	3b f3                	cmp    %ebx,%esi
4293b3:	72 ed                	jb     0x4293a2
4293b5:	8b 45 e8             	mov    -0x18(%ebp),%eax
4293b8:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4293be:	b8 04 00 00 00       	mov    $0x4,%eax
4293c3:	eb 17                	jmp    0x4293dc
4293c5:	8b 07                	mov    (%edi),%eax
4293c7:	a3 dc 12 45 00       	mov    %eax,0x4512dc
4293cc:	33 c0                	xor    %eax,%eax
4293ce:	eb 0c                	jmp    0x4293dc
4293d0:	b8 01 00 00 00       	mov    $0x1,%eax
4293d5:	eb 05                	jmp    0x4293dc
4293d7:	b8 03 00 00 00       	mov    $0x3,%eax
4293dc:	8d 65 b4             	lea    -0x4c(%ebp),%esp
4293df:	5f                   	pop    %edi
4293e0:	5e                   	pop    %esi
4293e1:	5b                   	pop    %ebx
4293e2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4293e5:	33 cd                	xor    %ebp,%ecx
4293e7:	e8 64 3b 02 00       	call   0x44cf50
4293ec:	8b e5                	mov    %ebp,%esp
4293ee:	5d                   	pop    %ebp
4293ef:	c2 0c 00             	ret    $0xc
4293f2:	cc                   	int3
4293f3:	cc                   	int3
4293f4:	cc                   	int3
4293f5:	cc                   	int3
4293f6:	cc                   	int3
4293f7:	cc                   	int3
4293f8:	cc                   	int3
4293f9:	cc                   	int3
4293fa:	cc                   	int3
4293fb:	cc                   	int3
4293fc:	cc                   	int3