428edc:	cc                   	int3
428edd:	cc                   	int3
428ede:	cc                   	int3
428edf:	cc                   	int3
428ee0:	8b ff                	mov    %edi,%edi
428ee2:	55                   	push   %ebp
428ee3:	8b ec                	mov    %esp,%ebp
428ee5:	8b 55 0c             	mov    0xc(%ebp),%edx
428ee8:	8d 45 14             	lea    0x14(%ebp),%eax
428eeb:	8b 4d 08             	mov    0x8(%ebp),%ecx
428eee:	50                   	push   %eax
428eef:	ff 75 10             	push   0x10(%ebp)
428ef2:	e8 e9 b8 ff ff       	call   0x4247e0
428ef7:	8b c8                	mov    %eax,%ecx
428ef9:	5d                   	pop    %ebp
428efa:	e9 e1 fd ff ff       	jmp    0x428ce0
428eff:	cc                   	int3
428f00:	8b ff                	mov    %edi,%edi
428f02:	55                   	push   %ebp
428f03:	8b ec                	mov    %esp,%ebp
428f05:	8b 45 0c             	mov    0xc(%ebp),%eax
428f08:	56                   	push   %esi
428f09:	d1 e8                	shr    $1,%eax
428f0b:	8b f0                	mov    %eax,%esi
428f0d:	f7 de                	neg    %esi
428f0f:	1b f6                	sbb    %esi,%esi
428f11:	81 e6 a9 ff f8 7f    	and    $0x7ff8ffa9,%esi
428f17:	81 c6 57 00 07 80    	add    $0x80070057,%esi
428f1d:	85 c0                	test   %eax,%eax
428f1f:	74 44                	je     0x428f65
428f21:	53                   	push   %ebx
428f22:	8b 5d 08             	mov    0x8(%ebp),%ebx
428f25:	33 f6                	xor    %esi,%esi
428f27:	57                   	push   %edi
428f28:	8d 78 ff             	lea    -0x1(%eax),%edi
428f2b:	8d 45 14             	lea    0x14(%ebp),%eax
428f2e:	50                   	push   %eax
428f2f:	ff 75 10             	push   0x10(%ebp)
428f32:	57                   	push   %edi
428f33:	53                   	push   %ebx
428f34:	ff 15 fc 22 45 00    	call   *0x4522fc
428f3a:	83 c4 10             	add    $0x10,%esp
428f3d:	85 c0                	test   %eax,%eax
428f3f:	78 17                	js     0x428f58
428f41:	3b c7                	cmp    %edi,%eax
428f43:	77 13                	ja     0x428f58
428f45:	75 1c                	jne    0x428f63
428f47:	33 c0                	xor    %eax,%eax
428f49:	8b ce                	mov    %esi,%ecx
428f4b:	66 89 04 7b          	mov    %ax,(%ebx,%edi,2)
428f4f:	5f                   	pop    %edi
428f50:	5b                   	pop    %ebx
428f51:	5e                   	pop    %esi
428f52:	5d                   	pop    %ebp
428f53:	e9 88 fd ff ff       	jmp    0x428ce0
428f58:	33 c0                	xor    %eax,%eax
428f5a:	be 7a 00 07 80       	mov    $0x8007007a,%esi
428f5f:	66 89 04 7b          	mov    %ax,(%ebx,%edi,2)
428f63:	5f                   	pop    %edi
428f64:	5b                   	pop    %ebx
428f65:	8b ce                	mov    %esi,%ecx
428f67:	5e                   	pop    %esi
428f68:	5d                   	pop    %ebp
428f69:	e9 72 fd ff ff       	jmp    0x428ce0
428f6e:	cc                   	int3
428f6f:	cc                   	int3
428f70:	8b ff                	mov    %edi,%edi
428f72:	55                   	push   %ebp
428f73:	8b ec                	mov    %esp,%ebp
428f75:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
428f79:	56                   	push   %esi
428f7a:	8b f1                	mov    %ecx,%esi
428f7c:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
428f83:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
428f8a:	c7 06 24 11 40 00    	movl   $0x401124,(%esi)
428f90:	74 19                	je     0x428fab
428f92:	56                   	push   %esi
428f93:	6a 00                	push   $0x0
428f95:	ff 35 00 12 45 00    	push   0x451200
428f9b:	ff 15 18 21 45 00    	call   *0x452118
428fa1:	85 c0                	test   %eax,%eax
428fa3:	75 06                	jne    0x428fab
428fa5:	ff 15 6c 20 45 00    	call   *0x45206c
428fab:	8b c6                	mov    %esi,%eax
428fad:	5e                   	pop    %esi
428fae:	5d                   	pop    %ebp
428faf:	c2 04 00             	ret    $0x4
428fb2:	cc                   	int3
428fb3:	cc                   	int3
428fb4:	cc                   	int3
428fb5:	cc                   	int3
428fb6:	cc                   	int3
428fb7:	cc                   	int3
428fb8:	cc                   	int3
428fb9:	cc                   	int3
428fba:	cc                   	int3
428fbb:	cc                   	int3
428fbc:	cc                   	int3
428fbd:	cc                   	int3
428fbe:	cc                   	int3
428fbf:	cc                   	int3
428fc0:	8b ff                	mov    %edi,%edi
428fc2:	55                   	push   %ebp
428fc3:	8b ec                	mov    %esp,%ebp
428fc5:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
428fc9:	74 11                	je     0x428fdc
428fcb:	8b 45 08             	mov    0x8(%ebp),%eax
428fce:	85 c0                	test   %eax,%eax
428fd0:	74 0a                	je     0x428fdc
428fd2:	a8 07                	test   $0x7,%al
428fd4:	75 06                	jne    0x428fdc
428fd6:	33 c0                	xor    %eax,%eax
428fd8:	5d                   	pop    %ebp
428fd9:	c2 04 00             	ret    $0x4
428fdc:	b8 01 00 00 00       	mov    $0x1,%eax
428fe1:	5d                   	pop    %ebp
428fe2:	c2 04 00             	ret    $0x4
428fe5:	cc                   	int3
428fe6:	cc                   	int3
428fe7:	cc                   	int3
428fe8:	cc                   	int3
428fe9:	cc                   	int3
428fea:	cc                   	int3
428feb:	cc                   	int3
428fec:	cc                   	int3
428fed:	cc                   	int3
428fee:	cc                   	int3
428fef:	cc                   	int3
428ff0:	8b ff                	mov    %edi,%edi
428ff2:	55                   	push   %ebp
428ff3:	8b ec                	mov    %esp,%ebp
428ff5:	8b 41 08             	mov    0x8(%ecx),%eax
428ff8:	56                   	push   %esi
428ff9:	85 c0                	test   %eax,%eax
428ffb:	74 2e                	je     0x42902b
428ffd:	8b 75 08             	mov    0x8(%ebp),%esi
429000:	3b 71 04             	cmp    0x4(%ecx),%esi
429003:	73 26                	jae    0x42902b
429005:	8b ce                	mov    %esi,%ecx
429007:	b2 01                	mov    $0x1,%dl
429009:	c1 ee 03             	shr    $0x3,%esi
42900c:	83 e1 07             	and    $0x7,%ecx
42900f:	03 f0                	add    %eax,%esi
429011:	d2 e2                	shl    %cl,%dl
429013:	8b 45 0c             	mov    0xc(%ebp),%eax
429016:	f7 d8                	neg    %eax
429018:	1a c0                	sbb    %al,%al
42901a:	22 c2                	and    %dl,%al
42901c:	f6 d2                	not    %dl
42901e:	22 16                	and    (%esi),%dl
429020:	0a c2                	or     %dl,%al
429022:	88 06                	mov    %al,(%esi)
429024:	33 c0                	xor    %eax,%eax
429026:	5e                   	pop    %esi
429027:	5d                   	pop    %ebp
429028:	c2 08 00             	ret    $0x8
42902b:	b8 01 00 00 00       	mov    $0x1,%eax
429030:	5e                   	pop    %esi
429031:	5d                   	pop    %ebp
429032:	c2 08 00             	ret    $0x8
429035:	cc                   	int3
429036:	cc                   	int3
429037:	cc                   	int3
429038:	cc                   	int3
429039:	cc                   	int3
42903a:	cc                   	int3
42903b:	cc                   	int3
42903c:	cc                   	int3
42903d:	cc                   	int3
42903e:	cc                   	int3
42903f:	cc                   	int3
429040:	8b ff                	mov    %edi,%edi
429042:	55                   	push   %ebp
429043:	8b ec                	mov    %esp,%ebp
429045:	56                   	push   %esi
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)