458e8d:	83 c8 02             	or     $0x2,%eax
458e90:	50                   	push   %eax
458e91:	ff 76 08             	push   0x8(%esi)
458e94:	8b cf                	mov    %edi,%ecx
458e96:	e8 0e fa ff ff       	call   0x4588a9
458e9b:	5f                   	pop    %edi
458e9c:	5e                   	pop    %esi
458e9d:	c2 04 00             	ret    $0x4
458ea0:	55                   	push   %ebp
458ea1:	8b ec                	mov    %esp,%ebp
458ea3:	83 ec 40             	sub    $0x40,%esp
458ea6:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
458eab:	56                   	push   %esi
458eac:	8b f1                	mov    %ecx,%esi
458eae:	57                   	push   %edi
458eaf:	8d 4d c0             	lea    -0x40(%ebp),%ecx
458eb2:	89 45 fc             	mov    %eax,-0x4(%ebp)
458eb5:	e8 1b 95 fe ff       	call   0x4423d5
458eba:	8b 06                	mov    (%esi),%eax
458ebc:	33 ff                	xor    %edi,%edi
458ebe:	57                   	push   %edi
458ebf:	57                   	push   %edi
458ec0:	68 18 04 00 00       	push   $0x418
458ec5:	8b ce                	mov    %esi,%ecx
458ec7:	c7 45 c0 c0 ec 48 00 	movl   $0x48ecc0,-0x40(%ebp)
458ece:	89 75 d4             	mov    %esi,-0x2c(%ebp)
458ed1:	ff 90 10 01 00 00    	call   *0x110(%eax)
458ed7:	3b c7                	cmp    %edi,%eax
458ed9:	89 45 e0             	mov    %eax,-0x20(%ebp)
458edc:	89 7d c8             	mov    %edi,-0x38(%ebp)
458edf:	76 5e                	jbe    0x458f3f
458ee1:	8d 45 e8             	lea    -0x18(%ebp),%eax
458ee4:	50                   	push   %eax
458ee5:	ff 75 c8             	push   -0x38(%ebp)
458ee8:	8b ce                	mov    %esi,%ecx
458eea:	e8 34 f5 ff ff       	call   0x458423
458eef:	f6 45 f1 01          	testb  $0x1,-0xf(%ebp)
458ef3:	8b 45 ec             	mov    -0x14(%ebp),%eax
458ef6:	89 45 c4             	mov    %eax,-0x3c(%ebp)
458ef9:	75 39                	jne    0x458f34
458efb:	57                   	push   %edi
458efc:	8d 45 c0             	lea    -0x40(%ebp),%eax
458eff:	50                   	push   %eax
458f00:	68 ff 00 11 bd       	push   $0xbd1100ff
458f05:	57                   	push   %edi
458f06:	8b ce                	mov    %esi,%ecx
458f08:	e8 34 93 fe ff       	call   0x442241
458f0d:	85 c0                	test   %eax,%eax
458f0f:	75 23                	jne    0x458f34
458f11:	57                   	push   %edi
458f12:	8d 45 c0             	lea    -0x40(%ebp),%eax
458f15:	50                   	push   %eax
458f16:	6a ff                	push   $0xffffffff
458f18:	ff 75 c4             	push   -0x3c(%ebp)
458f1b:	8b ce                	mov    %esi,%ecx
458f1d:	e8 1f 93 fe ff       	call   0x442241
458f22:	85 c0                	test   %eax,%eax
458f24:	75 0e                	jne    0x458f34
458f26:	ff 75 0c             	push   0xc(%ebp)
458f29:	8d 4d c0             	lea    -0x40(%ebp),%ecx
458f2c:	ff 75 08             	push   0x8(%ebp)
458f2f:	e8 c7 94 fe ff       	call   0x4423fb
458f34:	ff 45 c8             	incl   -0x38(%ebp)
458f37:	8b 45 c8             	mov    -0x38(%ebp),%eax
458f3a:	3b 45 e0             	cmp    -0x20(%ebp),%eax
458f3d:	72 a2                	jb     0x458ee1
458f3f:	ff 75 0c             	push   0xc(%ebp)
458f42:	8b ce                	mov    %esi,%ecx
458f44:	ff 75 08             	push   0x8(%ebp)
458f47:	e8 5d cb fe ff       	call   0x445aa9
458f4c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
458f4f:	5f                   	pop    %edi
458f50:	5e                   	pop    %esi
458f51:	e8 88 ec fb ff       	call   0x417bde
458f56:	c9                   	leave
458f57:	c2 08 00             	ret    $0x8
458f5a:	55                   	push   %ebp
458f5b:	8b ec                	mov    %esp,%ebp
458f5d:	83 ec 44             	sub    $0x44,%esp
458f60:	53                   	push   %ebx
458f61:	56                   	push   %esi
458f62:	57                   	push   %edi
458f63:	33 ff                	xor    %edi,%edi
458f65:	57                   	push   %edi
458f66:	8b d9                	mov    %ecx,%ebx
458f68:	8b 03                	mov    (%ebx),%eax
458f6a:	57                   	push   %edi
458f6b:	68 18 04 00 00       	push   $0x418
458f70:	89 7d f4             	mov    %edi,-0xc(%ebp)
458f73:	89 7d cc             	mov    %edi,-0x34(%ebp)
458f76:	89 7d d0             	mov    %edi,-0x30(%ebp)
458f79:	ff 90 10 01 00 00    	call   *0x110(%eax)
458f7f:	8b f0                	mov    %eax,%esi
458f81:	33 c0                	xor    %eax,%eax
458f83:	3b f0                	cmp    %eax,%esi
458f85:	89 75 e4             	mov    %esi,-0x1c(%ebp)
458f88:	0f 84 99 02 00 00    	je     0x459227
458f8e:	8d 04 b6             	lea    (%esi,%esi,4),%eax
458f91:	c1 e0 02             	shl    $0x2,%eax
458f94:	50                   	push   %eax
458f95:	e8 bb 70 fe ff       	call   0x440055
458f9a:	85 f6                	test   %esi,%esi
458f9c:	59                   	pop    %ecx
458f9d:	89 45 f4             	mov    %eax,-0xc(%ebp)
458fa0:	0f 8e 81 02 00 00    	jle    0x459227
458fa6:	89 45 f8             	mov    %eax,-0x8(%ebp)
458fa9:	ff 75 f8             	push   -0x8(%ebp)
458fac:	8b cb                	mov    %ebx,%ecx
458fae:	57                   	push   %edi
458faf:	e8 6f f4 ff ff       	call   0x458423
458fb4:	83 45 f8 14          	addl   $0x14,-0x8(%ebp)
458fb8:	47                   	inc    %edi
458fb9:	3b fe                	cmp    %esi,%edi
458fbb:	7c ec                	jl     0x458fa9
458fbd:	8b 7d f4             	mov    -0xc(%ebp),%edi
458fc0:	33 c0                	xor    %eax,%eax
458fc2:	3b f0                	cmp    %eax,%esi
458fc4:	0f 8e 5d 02 00 00    	jle    0x459227
458fca:	8b 4b 7c             	mov    0x7c(%ebx),%ecx
458fcd:	f6 c1 02             	test   $0x2,%cl
458fd0:	0f 85 8f 00 00 00    	jne    0x459065
458fd6:	8b d1                	mov    %ecx,%edx
458fd8:	83 e2 04             	and    $0x4,%edx
458fdb:	89 55 e0             	mov    %edx,-0x20(%ebp)
458fde:	74 6c                	je     0x45904c
458fe0:	f6 45 0c 04          	testb  $0x4,0xc(%ebp)
458fe4:	75 60                	jne    0x459046
458fe6:	f6 45 0c 08          	testb  $0x8,0xc(%ebp)
458fea:	74 08                	je     0x458ff4
458fec:	50                   	push   %eax
458fed:	68 ff 7f 00 00       	push   $0x7fff
458ff2:	eb 68                	jmp    0x45905c
458ff4:	f6 45 0c 10          	testb  $0x10,0xc(%ebp)
458ff8:	74 03                	je     0x458ffd
458ffa:	50                   	push   %eax
458ffb:	eb 5e                	jmp    0x45905b
458ffd:	83 7d 10 ff          	cmpl   $0xffffffff,0x10(%ebp)
459001:	74 3e                	je     0x459041
459003:	8d 45 d4             	lea    -0x2c(%ebp),%eax
459006:	50                   	push   %eax
459007:	ff 15 3c 08 4b 00    	call   *0x4b083c
45900d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
459010:	8b 03                	mov    (%ebx),%eax
459012:	83 e1 02             	and    $0x2,%ecx
459015:	51                   	push   %ecx
459016:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
459019:	51                   	push   %ecx
45901a:	8b cb                	mov    %ebx,%ecx
45901c:	ff 90 3c 01 00 00    	call   *0x13c(%eax)
459022:	8b 45 0c             	mov    0xc(%ebp),%eax
459025:	83 e0 20             	and    $0x20,%eax
459028:	74 08                	je     0x459032
45902a:	8b 4d e0             	mov    -0x20(%ebp),%ecx
45902d:	2b 4d d8             	sub    -0x28(%ebp),%ecx
459030:	eb 06                	jmp    0x459038
459032:	8b 4d dc             	mov    -0x24(%ebp),%ecx
459035:	2b 4d d4             	sub    -0x2c(%ebp),%ecx
459038:	50                   	push   %eax
459039:	8b 45 10             	mov    0x10(%ebp),%eax
45903c:	03 c8                	add    %eax,%ecx
45903e:	51                   	push   %ecx
45903f:	eb 1b                	jmp    0x45905c
459041:	f6 c1 01             	test   $0x1,%cl
459044:	74 06                	je     0x45904c
459046:	50                   	push   %eax
459047:	ff 73 6c             	push   0x6c(%ebx)
45904a:	eb 10                	jmp    0x45905c
45904c:	50                   	push   %eax
45904d:	8b 45 0c             	mov    0xc(%ebp),%eax
459050:	24 02                	and    $0x2,%al
459052:	f6 d8                	neg    %al
459054:	1b c0                	sbb    %eax,%eax
459056:	25 ff 7f 00 00       	and    $0x7fff,%eax
45905b:	50                   	push   %eax
45905c:	56                   	push   %esi
45905d:	8b cb                	mov    %ebx,%ecx
45905f:	57                   	push   %edi
459060:	e8 c3 f9 ff ff       	call   0x458a28
459065:	56                   	push   %esi
459066:	57                   	push   %edi
459067:	8d 45 dc             	lea    -0x24(%ebp),%eax
45906a:	50                   	push   %eax
45906b:	8b cb                	mov    %ebx,%ecx
45906d:	e8 94 f8 ff ff       	call   0x458906
459072:	f6 45 0c 40          	testb  $0x40,0xc(%ebp)
459076:	8b 08                	mov    (%eax),%ecx
459078:	8b 40 04             	mov    0x4(%eax),%eax
45907b:	89 4d cc             	mov    %ecx,-0x34(%ebp)
45907e:	89 45 d0             	mov    %eax,-0x30(%ebp)
459081:	0f 84 99 01 00 00    	je     0x459220
459087:	8b 83 9c 00 00 00    	mov    0x9c(%ebx),%eax
45908d:	33 d2                	xor    %edx,%edx
45908f:	3b f2                	cmp    %edx,%esi
459091:	89 55 fc             	mov    %edx,-0x4(%ebp)
459094:	89 55 10             	mov    %edx,0x10(%ebp)
459097:	89 45 e0             	mov    %eax,-0x20(%ebp)
45909a:	89 93 9c 00 00 00    	mov    %edx,0x9c(%ebx)
4590a0:	0f 8e bd 00 00 00    	jle    0x459163
4590a6:	8d 47 04             	lea    0x4(%edi),%eax
4590a9:	89 45 ec             	mov    %eax,-0x14(%ebp)
4590ac:	8b ce                	mov    %esi,%ecx
4590ae:	f6 40 05 01          	testb  $0x1,0x5(%eax)
4590b2:	74 06                	je     0x4590ba
4590b4:	83 38 00             	cmpl   $0x0,(%eax)
4590b7:	74 01                	je     0x4590ba
4590b9:	42                   	inc    %edx
4590ba:	83 c0 14             	add    $0x14,%eax
4590bd:	49                   	dec    %ecx
4590be:	75 ee                	jne    0x4590ae
4590c0:	85 d2                	test   %edx,%edx
4590c2:	89 55 10             	mov    %edx,0x10(%ebp)
4590c5:	0f 8e 98 00 00 00    	jle    0x459163
4590cb:	8d 04 52             	lea    (%edx,%edx,2),%eax
4590ce:	c1 e0 03             	shl    $0x3,%eax
4590d1:	50                   	push   %eax
4590d2:	e8 7e 6f fe ff       	call   0x440055
4590d7:	8b f8                	mov    %eax,%edi
4590d9:	85 ff                	test   %edi,%edi
4590db:	59                   	pop    %ecx
4590dc:	74 15                	je     0x4590f3
4590de:	68 b4 8b 45 00       	push   $0x458bb4
4590e3:	ff 75 10             	push   0x10(%ebp)
4590e6:	6a 18                	push   $0x18
4590e8:	57                   	push   %edi
4590e9:	e8 d9 f4 ff ff       	call   0x4585c7
4590ee:	89 7d fc             	mov    %edi,-0x4(%ebp)
4590f1:	eb 04                	jmp    0x4590f7
4590f3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4590f7:	8b 7d fc             	mov    -0x4(%ebp),%edi
4590fa:	83 65 10 00          	andl   $0x0,0x10(%ebp)
4590fe:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
459102:	8b 45 ec             	mov    -0x14(%ebp),%eax
459105:	83 c7 08             	add    $0x8,%edi
459108:	89 7d f0             	mov    %edi,-0x10(%ebp)
45910b:	89 45 ec             	mov    %eax,-0x14(%ebp)
45910e:	f6 40 05 01          	testb  $0x1,0x5(%eax)
459112:	74 41                	je     0x459155
459114:	83 38 00             	cmpl   $0x0,(%eax)
459117:	74 3c                	je     0x459155
459119:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45911c:	89 4f f8             	mov    %ecx,-0x8(%edi)
45911f:	8b 00                	mov    (%eax),%eax
459121:	8d 55 bc             	lea    -0x44(%ebp),%edx
459124:	52                   	push   %edx
459125:	89 47 fc             	mov    %eax,-0x4(%edi)
459128:	8b 03                	mov    (%ebx),%eax
45912a:	51                   	push   %ecx
45912b:	8b cb                	mov    %ebx,%ecx
45912d:	ff 90 6c 01 00 00    	call   *0x16c(%eax)
459133:	8d 45 bc             	lea    -0x44(%ebp),%eax
459136:	50                   	push   %eax
459137:	8b cb                	mov    %ebx,%ecx
459139:	e8 1c 5f ff ff       	call   0x44f05a
45913e:	ff 45 10             	incl   0x10(%ebp)
459141:	83 45 f0 18          	addl   $0x18,-0x10(%ebp)
459145:	8b 45 ec             	mov    -0x14(%ebp),%eax
459148:	8d 75 bc             	lea    -0x44(%ebp),%esi
45914b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45914c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45914d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45914e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
45914f:	8b 75 e4             	mov    -0x1c(%ebp),%esi
459152:	8b 7d f0             	mov    -0x10(%ebp),%edi
459155:	ff 45 f8             	incl   -0x8(%ebp)
459158:	83 c0 14             	add    $0x14,%eax
45915b:	39 75 f8             	cmp    %esi,-0x8(%ebp)
45915e:	89 45 ec             	mov    %eax,-0x14(%ebp)
459161:	7c ab                	jl     0x45910e
459163:	8b 43 7c             	mov    0x7c(%ebx),%eax
459166:	a8 01                	test   $0x1,%al
459168:	74 0a                	je     0x459174
45916a:	a8 04                	test   $0x4,%al
45916c:	74 06                	je     0x459174
45916e:	8b 45 cc             	mov    -0x34(%ebp),%eax
459171:	89 43 6c             	mov    %eax,0x6c(%ebx)
459174:	33 ff                	xor    %edi,%edi
459176:	85 f6                	test   %esi,%esi
459178:	7e 1a                	jle    0x459194
45917a:	8b 45 f4             	mov    -0xc(%ebp),%eax
45917d:	89 45 f0             	mov    %eax,-0x10(%ebp)
459180:	ff 75 f0             	push   -0x10(%ebp)
459183:	8b cb                	mov    %ebx,%ecx
459185:	57                   	push   %edi
459186:	e8 a1 f5 ff ff       	call   0x45872c
45918b:	83 45 f0 14          	addl   $0x14,-0x10(%ebp)
45918f:	47                   	inc    %edi
459190:	3b fe                	cmp    %esi,%edi
459192:	7c ec                	jl     0x459180
459194:	8b 45 10             	mov    0x10(%ebp),%eax
459197:	85 c0                	test   %eax,%eax
459199:	7e 79                	jle    0x459214
45919b:	8b 75 fc             	mov    -0x4(%ebp),%esi
45919e:	83 c6 08             	add    $0x8,%esi
4591a1:	89 45 10             	mov    %eax,0x10(%ebp)
4591a4:	ff 76 fc             	push   -0x4(%esi)
4591a7:	8b cb                	mov    %ebx,%ecx
4591a9:	e8 2e 79 fe ff       	call   0x440adc
4591ae:	85 c0                	test   %eax,%eax
4591b0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4591b3:	74 4e                	je     0x459203
4591b5:	8d 4d bc             	lea    -0x44(%ebp),%ecx
4591b8:	51                   	push   %ecx
4591b9:	ff 70 1c             	push   0x1c(%eax)
4591bc:	ff 15 40 07 4b 00    	call   *0x4b0740
4591c2:	8b 06                	mov    (%esi),%eax
4591c4:	8b 7d bc             	mov    -0x44(%ebp),%edi
4591c7:	8b 4e 04             	mov    0x4(%esi),%ecx
4591ca:	2b f8                	sub    %eax,%edi
4591cc:	8b 45 c0             	mov    -0x40(%ebp),%eax
4591cf:	2b c1                	sub    %ecx,%eax
4591d1:	8d 4d bc             	lea    -0x44(%ebp),%ecx
4591d4:	51                   	push   %ecx
4591d5:	ff 76 f8             	push   -0x8(%esi)
4591d8:	89 45 ec             	mov    %eax,-0x14(%ebp)
4591db:	8b 03                	mov    (%ebx),%eax
4591dd:	8b cb                	mov    %ebx,%ecx
4591df:	ff 90 6c 01 00 00    	call   *0x16c(%eax)
4591e5:	8b 55 c0             	mov    -0x40(%ebp),%edx
4591e8:	8b 45 ec             	mov    -0x14(%ebp),%eax
4591eb:	8b 4d bc             	mov    -0x44(%ebp),%ecx
4591ee:	6a 15                	push   $0x15
4591f0:	03 c2                	add    %edx,%eax
4591f2:	33 d2                	xor    %edx,%edx
4591f4:	52                   	push   %edx
4591f5:	52                   	push   %edx
4591f6:	03 cf                	add    %edi,%ecx
4591f8:	50                   	push   %eax
4591f9:	51                   	push   %ecx
4591fa:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4591fd:	52                   	push   %edx
4591fe:	e8 66 7d fe ff       	call   0x440f69
459203:	83 c6 18             	add    $0x18,%esi
459206:	ff 4d 10             	decl   0x10(%ebp)
459209:	75 99                	jne    0x4591a4
45920b:	ff 75 fc             	push   -0x4(%ebp)
45920e:	e8 6d 6e fe ff       	call   0x440080
459213:	59                   	pop    %ecx
459214:	8b 45 e0             	mov    -0x20(%ebp),%eax
459217:	8b 7d f4             	mov    -0xc(%ebp),%edi
45921a:	89 83 9c 00 00 00    	mov    %eax,0x9c(%ebx)
459220:	57                   	push   %edi
459221:	e8 5a 6e fe ff       	call   0x440080
459226:	59                   	pop    %ecx
459227:	8d 45 bc             	lea    -0x44(%ebp),%eax
45922a:	50                   	push   %eax
45922b:	ff 15 3c 08 4b 00    	call   *0x4b083c
459231:	8b 75 0c             	mov    0xc(%ebp),%esi
459234:	8b 03                	mov    (%ebx),%eax
459236:	83 e6 02             	and    $0x2,%esi
459239:	56                   	push   %esi