46bfdc:	68 6c c0 46 00       	push   $0x46c06c
46bfe1:	8b 45 fc             	mov    -0x4(%ebp),%eax
46bfe4:	50                   	push   %eax
46bfe5:	e8 9e b0 f9 ff       	call   0x407088
46bfea:	8b f0                	mov    %eax,%esi
46bfec:	8b 45 fc             	mov    -0x4(%ebp),%eax
46bfef:	50                   	push   %eax
46bff0:	e8 73 b0 f9 ff       	call   0x407068
46bff5:	83 fe 02             	cmp    $0x2,%esi
46bff8:	74 33                	je     0x46c02d
46bffa:	85 f6                	test   %esi,%esi
46bffc:	75 06                	jne    0x46c004
46bffe:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
46c002:	74 04                	je     0x46c008
46c004:	33 db                	xor    %ebx,%ebx
46c006:	eb 25                	jmp    0x46c02d
46c008:	8d 45 cc             	lea    -0x34(%ebp),%eax
46c00b:	8d 55 d0             	lea    -0x30(%ebp),%edx
46c00e:	b9 20 00 00 00       	mov    $0x20,%ecx
46c013:	e8 b8 8a f9 ff       	call   0x404ad0
46c018:	8b 45 cc             	mov    -0x34(%ebp),%eax
46c01b:	8d 55 f0             	lea    -0x10(%ebp),%edx
46c01e:	e8 81 72 f9 ff       	call   0x4032a4
46c023:	8b d8                	mov    %eax,%ebx
46c025:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
46c029:	74 02                	je     0x46c02d
46c02b:	33 db                	xor    %ebx,%ebx
46c02d:	33 c0                	xor    %eax,%eax
46c02f:	5a                   	pop    %edx
46c030:	59                   	pop    %ecx
46c031:	59                   	pop    %ecx
46c032:	64 89 10             	mov    %edx,%fs:(%eax)
46c035:	68 4a c0 46 00       	push   $0x46c04a
46c03a:	8d 45 cc             	lea    -0x34(%ebp),%eax
46c03d:	e8 26 88 f9 ff       	call   0x404868
46c042:	c3                   	ret
46c043:	e9 c4 81 f9 ff       	jmp    0x40420c
46c048:	eb f0                	jmp    0x46c03a
46c04a:	8b c3                	mov    %ebx,%eax
46c04c:	5e                   	pop    %esi
46c04d:	5b                   	pop    %ebx
46c04e:	8b e5                	mov    %ebp,%esp
46c050:	5d                   	pop    %ebp
46c051:	c3                   	ret
46c052:	00 00                	add    %al,(%eax)
46c054:	43                   	inc    %ebx
46c055:	6f                   	outsl  %ds:(%esi),(%dx)
46c056:	6e                   	outsb  %ds:(%esi),(%dx)
46c057:	74 72                	je     0x46c0cb
46c059:	6f                   	outsl  %ds:(%esi),(%dx)
46c05a:	6c                   	insb   (%dx),%es:(%edi)
46c05b:	20 50 61             	and    %dl,0x61(%eax)
46c05e:	6e                   	outsb  %ds:(%esi),(%dx)
46c05f:	65 6c                	gs insb (%dx),%es:(%edi)
46c061:	5c                   	pop    %esp
46c062:	44                   	inc    %esp
46c063:	65 73 6b             	gs jae 0x46c0d1
46c066:	74 6f                	je     0x46c0d7
46c068:	70 00                	jo     0x46c06a
46c06a:	00 00                	add    %al,(%eax)
46c06c:	4d                   	dec    %ebp
46c06d:	65 6e                	outsb  %gs:(%esi),(%dx)
46c06f:	75 53                	jne    0x46c0c4
46c071:	68 6f 77 44 65       	push   $0x6544776f
46c076:	6c                   	insb   (%dx),%es:(%edi)
46c077:	61                   	popa
46c078:	79 00                	jns    0x46c07a
46c07a:	00 00                	add    %al,(%eax)
46c07c:	51                   	push   %ecx
46c07d:	e8 0e b2 f9 ff       	call   0x407290
46c082:	25 ff 00 00 00       	and    $0xff,%eax
46c087:	66 83 f8 04          	cmp    $0x4,%ax
46c08b:	72 43                	jb     0x46c0d0
46c08d:	6a 00                	push   $0x0
46c08f:	8d 44 24 04          	lea    0x4(%esp),%eax
46c093:	50                   	push   %eax
46c094:	6a 00                	push   $0x0
46c096:	6a 6a                	push   $0x6a
46c098:	e8 8b bd f9 ff       	call   0x407e28
46c09d:	85 c0                	test   %eax,%eax
46c09f:	75 22                	jne    0x46c0c3
46c0a1:	80 3d ec ae 68 00 00 	cmpb   $0x0,0x68aeec
46c0a8:	75 11                	jne    0x46c0bb
46c0aa:	e8 dd fe ff ff       	call   0x46bf8c
46c0af:	a3 d0 8c 6a 00       	mov    %eax,0x6a8cd0
46c0b4:	c6 05 ec ae 68 00 01 	movb   $0x1,0x68aeec
46c0bb:	a1 d0 8c 6a 00       	mov    0x6a8cd0,%eax
46c0c0:	89 04 24             	mov    %eax,(%esp)
46c0c3:	83 3c 24 00          	cmpl   $0x0,(%esp)
46c0c7:	7d 0e                	jge    0x46c0d7
46c0c9:	33 c0                	xor    %eax,%eax
46c0cb:	89 04 24             	mov    %eax,(%esp)
46c0ce:	eb 07                	jmp    0x46c0d7
46c0d0:	c7 04 24 90 01 00 00 	movl   $0x190,(%esp)
46c0d7:	8b 04 24             	mov    (%esp),%eax
46c0da:	5a                   	pop    %edx
46c0db:	c3                   	ret
46c0dc:	51                   	push   %ecx
46c0dd:	e8 7a 0c 00 00       	call   0x46cd5c
46c0e2:	84 c0                	test   %al,%al
46c0e4:	74 1d                	je     0x46c103
46c0e6:	6a 00                	push   $0x0
46c0e8:	8d 44 24 04          	lea    0x4(%esp),%eax
46c0ec:	50                   	push   %eax
46c0ed:	6a 00                	push   $0x0
46c0ef:	68 22 10 00 00       	push   $0x1022
46c0f4:	e8 2f bd f9 ff       	call   0x407e28
46c0f9:	85 c0                	test   %eax,%eax
46c0fb:	74 06                	je     0x46c103
46c0fd:	83 3c 24 00          	cmpl   $0x0,(%esp)
46c101:	75 04                	jne    0x46c107
46c103:	33 c0                	xor    %eax,%eax
46c105:	5a                   	pop    %edx
46c106:	c3                   	ret
46c107:	b0 01                	mov    $0x1,%al
46c109:	5a                   	pop    %edx
46c10a:	c3                   	ret
46c10b:	90                   	nop
46c10c:	51                   	push   %ecx
46c10d:	a1 e8 6d 6a 00       	mov    0x6a6de8,%eax
46c112:	83 38 05             	cmpl   $0x5,(%eax)
46c115:	7c 21                	jl     0x46c138
46c117:	6a 00                	push   $0x0
46c119:	8d 44 24 04          	lea    0x4(%esp),%eax
46c11d:	50                   	push   %eax
46c11e:	6a 00                	push   $0x0
46c120:	68 0a 10 00 00       	push   $0x100a
46c125:	e8 fe bc f9 ff       	call   0x407e28
46c12a:	85 c0                	test   %eax,%eax
46c12c:	74 0a                	je     0x46c138
46c12e:	83 3c 24 00          	cmpl   $0x0,(%esp)
46c132:	75 04                	jne    0x46c138
46c134:	33 c0                	xor    %eax,%eax
46c136:	5a                   	pop    %edx
46c137:	c3                   	ret
46c138:	b0 01                	mov    $0x1,%al
46c13a:	5a                   	pop    %edx
46c13b:	c3                   	ret
46c13c:	83 c4 f0             	add    $0xfffffff0,%esp
46c13f:	54                   	push   %esp
46c140:	e8 5b bc f9 ff       	call   0x407da0
46c145:	54                   	push   %esp
46c146:	e8 9d b3 f9 ff       	call   0x4074e8
46c14b:	83 c4 10             	add    $0x10,%esp
46c14e:	c3                   	ret
46c14f:	90                   	nop
46c150:	55                   	push   %ebp
46c151:	8b ec                	mov    %esp,%ebp
46c153:	83 c4 d0             	add    $0xffffffd0,%esp
46c156:	53                   	push   %ebx
46c157:	56                   	push   %esi
46c158:	57                   	push   %edi
46c159:	8b d9                	mov    %ecx,%ebx
46c15b:	89 55 f8             	mov    %edx,-0x8(%ebp)
46c15e:	89 45 fc             	mov    %eax,-0x4(%ebp)
46c161:	8b 75 08             	mov    0x8(%ebp),%esi
46c164:	8b 7d 0c             	mov    0xc(%ebp),%edi
46c167:	33 c0                	xor    %eax,%eax
46c169:	89 45 e4             	mov    %eax,-0x1c(%ebp)
46c16c:	33 c0                	xor    %eax,%eax
46c16e:	89 45 e0             	mov    %eax,-0x20(%ebp)
46c171:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
46c175:	75 17                	jne    0x46c18e
46c177:	8d 45 d0             	lea    -0x30(%ebp),%eax
46c17a:	50                   	push   %eax
46c17b:	e8 20 bc f9 ff       	call   0x407da0
46c180:	8d 45 d0             	lea    -0x30(%ebp),%eax
46c183:	50                   	push   %eax
46c184:	e8 5f b3 f9 ff       	call   0x4074e8
46c189:	89 45 ec             	mov    %eax,-0x14(%ebp)
46c18c:	eb 47                	jmp    0x46c1d5
46c18e:	8b 45 f8             	mov    -0x8(%ebp),%eax
46c191:	56                   	push   %esi
46c192:	57                   	push   %edi
46c193:	8b f0                	mov    %eax,%esi
46c195:	8d 7d d0             	lea    -0x30(%ebp),%edi
46c198:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46c199:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46c19a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46c19b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46c19c:	5f                   	pop    %edi
46c19d:	5e                   	pop    %esi
46c19e:	8d 45 d0             	lea    -0x30(%ebp),%eax
46c1a1:	50                   	push   %eax
46c1a2:	e8 41 b3 f9 ff       	call   0x4074e8
46c1a7:	89 45 ec             	mov    %eax,-0x14(%ebp)
46c1aa:	8b 45 14             	mov    0x14(%ebp),%eax
46c1ad:	8b 40 04             	mov    0x4(%eax),%eax
46c1b0:	f7 d8                	neg    %eax
46c1b2:	50                   	push   %eax
46c1b3:	8b 45 14             	mov    0x14(%ebp),%eax
46c1b6:	8b 00                	mov    (%eax),%eax
46c1b8:	f7 d8                	neg    %eax
46c1ba:	50                   	push   %eax
46c1bb:	8d 45 d0             	lea    -0x30(%ebp),%eax
46c1be:	50                   	push   %eax
46c1bf:	e8 c4 b9 f9 ff       	call   0x407b88
46c1c4:	8b 45 f8             	mov    -0x8(%ebp),%eax
46c1c7:	50                   	push   %eax
46c1c8:	8d 45 d0             	lea    -0x30(%ebp),%eax
46c1cb:	50                   	push   %eax
46c1cc:	8d 45 d0             	lea    -0x30(%ebp),%eax
46c1cf:	50                   	push   %eax
46c1d0:	e8 cb b9 f9 ff       	call   0x407ba0
46c1d5:	8d 45 d0             	lea    -0x30(%ebp),%eax
46c1d8:	50                   	push   %eax
46c1d9:	e8 0a b3 f9 ff       	call   0x4074e8
46c1de:	89 45 e8             	mov    %eax,-0x18(%ebp)
46c1e1:	e8 56 ff ff ff       	call   0x46c13c
46c1e6:	89 45 f0             	mov    %eax,-0x10(%ebp)
46c1e9:	6a 03                	push   $0x3
46c1eb:	8b 45 e8             	mov    -0x18(%ebp),%eax
46c1ee:	50                   	push   %eax
46c1ef:	8b 45 ec             	mov    -0x14(%ebp),%eax
46c1f2:	50                   	push   %eax
46c1f3:	8b 45 f0             	mov    -0x10(%ebp),%eax
46c1f6:	50                   	push   %eax
46c1f7:	e8 4c b2 f9 ff       	call   0x407448
46c1fc:	85 f6                	test   %esi,%esi
46c1fe:	75 02                	jne    0x46c202
46c200:	8b f7                	mov    %edi,%esi
46c202:	85 db                	test   %ebx,%ebx
46c204:	0f 84 a2 00 00 00    	je     0x46c2ac
46c20a:	e8 2d ff ff ff       	call   0x46c13c
46c20f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
46c212:	8b c3                	mov    %ebx,%eax
46c214:	8b 50 0c             	mov    0xc(%eax),%edx
46c217:	52                   	push   %edx
46c218:	8b 50 08             	mov    0x8(%eax),%edx
46c21b:	52                   	push   %edx
46c21c:	8b 50 04             	mov    0x4(%eax),%edx
46c21f:	52                   	push   %edx
46c220:	8b 00                	mov    (%eax),%eax
46c222:	50                   	push   %eax
46c223:	8b 45 ec             	mov    -0x14(%ebp),%eax
46c226:	50                   	push   %eax
46c227:	e8 3c b5 f9 ff       	call   0x407768
46c22c:	56                   	push   %esi
46c22d:	57                   	push   %edi
46c22e:	8b f3                	mov    %ebx,%esi
46c230:	8d 7d d0             	lea    -0x30(%ebp),%edi
46c233:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46c234:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46c235:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46c236:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46c237:	5f                   	pop    %edi
46c238:	5e                   	pop    %esi
46c239:	8b 45 10             	mov    0x10(%ebp),%eax
46c23c:	8b 40 04             	mov    0x4(%eax),%eax
46c23f:	f7 d8                	neg    %eax
46c241:	50                   	push   %eax
46c242:	8b 45 10             	mov    0x10(%ebp),%eax
46c245:	8b 00                	mov    (%eax),%eax
46c247:	f7 d8                	neg    %eax
46c249:	50                   	push   %eax
46c24a:	8d 45 d0             	lea    -0x30(%ebp),%eax
46c24d:	50                   	push   %eax
46c24e:	e8 35 b9 f9 ff       	call   0x407b88
46c253:	53                   	push   %ebx
46c254:	8d 45 d0             	lea    -0x30(%ebp),%eax
46c257:	50                   	push   %eax
46c258:	8d 45 d0             	lea    -0x30(%ebp),%eax
46c25b:	50                   	push   %eax
46c25c:	e8 3f b9 f9 ff       	call   0x407ba0
46c261:	8b 45 dc             	mov    -0x24(%ebp),%eax
46c264:	50                   	push   %eax
46c265:	8b 45 d8             	mov    -0x28(%ebp),%eax
46c268:	50                   	push   %eax
46c269:	8b 45 d4             	mov    -0x2c(%ebp),%eax
46c26c:	50                   	push   %eax
46c26d:	8b 45 d0             	mov    -0x30(%ebp),%eax
46c270:	50                   	push   %eax
46c271:	8b 45 e8             	mov    -0x18(%ebp),%eax
46c274:	50                   	push   %eax
46c275:	e8 ee b4 f9 ff       	call   0x407768
46c27a:	6a 03                	push   $0x3
46c27c:	8b 45 e8             	mov    -0x18(%ebp),%eax
46c27f:	50                   	push   %eax
46c280:	8b 45 ec             	mov    -0x14(%ebp),%eax
46c283:	50                   	push   %eax
46c284:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46c287:	50                   	push   %eax
46c288:	e8 bb b1 f9 ff       	call   0x407448
46c28d:	3b f7                	cmp    %edi,%esi
46c28f:	75 1b                	jne    0x46c2ac
46c291:	e8 a6 fe ff ff       	call   0x46c13c
46c296:	89 45 e0             	mov    %eax,-0x20(%ebp)
46c299:	6a 03                	push   $0x3
46c29b:	8b 45 f0             	mov    -0x10(%ebp),%eax
46c29e:	50                   	push   %eax
46c29f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46c2a2:	50                   	push   %eax
46c2a3:	8b 45 e0             	mov    -0x20(%ebp),%eax
46c2a6:	50                   	push   %eax
46c2a7:	e8 9c b1 f9 ff       	call   0x407448
46c2ac:	8b 45 fc             	mov    -0x4(%ebp),%eax
46c2af:	50                   	push   %eax
46c2b0:	e8 3b b4 f9 ff       	call   0x4076f0
46c2b5:	89 45 f4             	mov    %eax,-0xc(%ebp)
46c2b8:	33 c9                	xor    %ecx,%ecx
46c2ba:	55                   	push   %ebp
46c2bb:	68 8a c3 46 00       	push   $0x46c38a
46c2c0:	64 ff 31             	push   %fs:(%ecx)
46c2c3:	64 89 21             	mov    %esp,%fs:(%ecx)
46c2c6:	3b f7                	cmp    %edi,%esi
46c2c8:	74 4a                	je     0x46c314
46c2ca:	85 db                	test   %ebx,%ebx
46c2cc:	74 46                	je     0x46c314
46c2ce:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46c2d1:	50                   	push   %eax
46c2d2:	8b 45 fc             	mov    -0x4(%ebp),%eax
46c2d5:	50                   	push   %eax
46c2d6:	e8 1d b4 f9 ff       	call   0x4076f8
46c2db:	8d 45 d0             	lea    -0x30(%ebp),%eax
46c2de:	50                   	push   %eax
46c2df:	8b 45 fc             	mov    -0x4(%ebp),%eax
46c2e2:	50                   	push   %eax
46c2e3:	e8 98 b2 f9 ff       	call   0x407580
46c2e8:	56                   	push   %esi
46c2e9:	8b 45 fc             	mov    -0x4(%ebp),%eax
46c2ec:	50                   	push   %eax
46c2ed:	e8 0e b4 f9 ff       	call   0x407700
46c2f2:	68 49 00 5a 00       	push   $0x5a0049
46c2f7:	8b 4d dc             	mov    -0x24(%ebp),%ecx
46c2fa:	8b 55 d4             	mov    -0x2c(%ebp),%edx
46c2fd:	2b ca                	sub    %edx,%ecx
46c2ff:	51                   	push   %ecx
46c300:	8b 4d d8             	mov    -0x28(%ebp),%ecx
46c303:	8b 45 d0             	mov    -0x30(%ebp),%eax
46c306:	2b c8                	sub    %eax,%ecx
46c308:	51                   	push   %ecx
46c309:	52                   	push   %edx
46c30a:	50                   	push   %eax
46c30b:	8b 45 fc             	mov    -0x4(%ebp),%eax
46c30e:	50                   	push   %eax
46c30f:	e8 8c b3 f9 ff       	call   0x4076a0
46c314:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
46c318:	74 0f                	je     0x46c329
46c31a:	8b 45 e0             	mov    -0x20(%ebp),%eax
46c31d:	50                   	push   %eax
46c31e:	8b 45 fc             	mov    -0x4(%ebp),%eax
46c321:	50                   	push   %eax
46c322:	e8 d1 b3 f9 ff       	call   0x4076f8
46c327:	eb 0d                	jmp    0x46c336
46c329:	8b 45 f0             	mov    -0x10(%ebp),%eax
46c32c:	50                   	push   %eax
46c32d:	8b 45 fc             	mov    -0x4(%ebp),%eax
46c330:	50                   	push   %eax
46c331:	e8 c2 b3 f9 ff       	call   0x4076f8
46c336:	8d 45 d0             	lea    -0x30(%ebp),%eax