40ab06:	66 3b c2             	cmp    %dx,%ax
40ab09:	0f 84 fb 1e 01 00    	je     0x41ca0a
40ab0f:	6a 3d                	push   $0x3d
40ab11:	58                   	pop    %eax
40ab12:	66 39 06             	cmp    %ax,(%esi)
40ab15:	0f 84 e2 1f 01 00    	je     0x41cafd
40ab1b:	50                   	push   %eax
40ab1c:	56                   	push   %esi
40ab1d:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40ab23:	59                   	pop    %ecx
40ab24:	59                   	pop    %ecx
40ab25:	85 c0                	test   %eax,%eax
40ab27:	74 1e                	je     0x40ab47
40ab29:	33 c9                	xor    %ecx,%ecx
40ab2b:	8d 50 02             	lea    0x2(%eax),%edx
40ab2e:	66 89 08             	mov    %cx,(%eax)
40ab31:	8b ce                	mov    %esi,%ecx
40ab33:	e8 3e fe ff ff       	call   0x40a976
40ab38:	5f                   	pop    %edi
40ab39:	5e                   	pop    %esi
40ab3a:	5b                   	pop    %ebx
40ab3b:	c9                   	leave
40ab3c:	c3                   	ret
40ab3d:	8d 4e 04             	lea    0x4(%esi),%ecx
40ab40:	e8 e1 87 00 00       	call   0x413326
40ab45:	eb f1                	jmp    0x40ab38
40ab47:	8b ce                	mov    %esi,%ecx
40ab49:	e8 9a a6 01 00       	call   0x4251e8
40ab4e:	eb e8                	jmp    0x40ab38
40ab50:	8b ff                	mov    %edi,%edi
40ab52:	55                   	push   %ebp
40ab53:	8b ec                	mov    %esp,%ebp
40ab55:	56                   	push   %esi
40ab56:	8b 75 08             	mov    0x8(%ebp),%esi
40ab59:	33 c9                	xor    %ecx,%ecx
40ab5b:	8b 56 38             	mov    0x38(%esi),%edx
40ab5e:	e8 0d 39 00 00       	call   0x40e470
40ab63:	80 3d 44 67 43 00 00 	cmpb   $0x0,0x436744
40ab6a:	75 0f                	jne    0x40ab7b
40ab6c:	8b 56 3c             	mov    0x3c(%esi),%edx
40ab6f:	33 c9                	xor    %ecx,%ecx
40ab71:	e8 fa 38 00 00       	call   0x40e470
40ab76:	5e                   	pop    %esi
40ab77:	5d                   	pop    %ebp
40ab78:	c2 04 00             	ret    $0x4
40ab7b:	33 c0                	xor    %eax,%eax
40ab7d:	eb f7                	jmp    0x40ab76
40ab7f:	8b ff                	mov    %edi,%edi
40ab81:	56                   	push   %esi
40ab82:	8b f1                	mov    %ecx,%esi
40ab84:	85 f6                	test   %esi,%esi
40ab86:	74 23                	je     0x40abab
40ab88:	57                   	push   %edi
40ab89:	0f b7 3e             	movzwl (%esi),%edi
40ab8c:	57                   	push   %edi
40ab8d:	ff 15 ac a3 44 00    	call   *0x44a3ac
40ab93:	59                   	pop    %ecx
40ab94:	85 c0                	test   %eax,%eax
40ab96:	75 17                	jne    0x40abaf
40ab98:	57                   	push   %edi
40ab99:	68 d0 22 40 00       	push   $0x4022d0
40ab9e:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40aba4:	59                   	pop    %ecx
40aba5:	59                   	pop    %ecx
40aba6:	85 c0                	test   %eax,%eax
40aba8:	75 0f                	jne    0x40abb9
40abaa:	5f                   	pop    %edi
40abab:	8b c6                	mov    %esi,%eax
40abad:	5e                   	pop    %esi
40abae:	c3                   	ret
40abaf:	83 ff 0a             	cmp    $0xa,%edi
40abb2:	74 e4                	je     0x40ab98
40abb4:	83 c6 02             	add    $0x2,%esi
40abb7:	eb d0                	jmp    0x40ab89
40abb9:	66 85 ff             	test   %di,%di
40abbc:	74 ec                	je     0x40abaa
40abbe:	eb f4                	jmp    0x40abb4
40abc0:	8b ff                	mov    %edi,%edi
40abc2:	55                   	push   %ebp
40abc3:	8b ec                	mov    %esp,%ebp
40abc5:	83 ec 1c             	sub    $0x1c,%esp
40abc8:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
40abcd:	33 c5                	xor    %ebp,%eax
40abcf:	89 45 fc             	mov    %eax,-0x4(%ebp)
40abd2:	53                   	push   %ebx
40abd3:	56                   	push   %esi
40abd4:	57                   	push   %edi
40abd5:	68 f0 4a 44 00       	push   $0x444af0
40abda:	33 db                	xor    %ebx,%ebx
40abdc:	68 50 23 40 00       	push   $0x402350
40abe1:	8b fb                	mov    %ebx,%edi
40abe3:	ff 15 40 a4 44 00    	call   *0x44a440
40abe9:	59                   	pop    %ecx
40abea:	59                   	pop    %ecx
40abeb:	85 c0                	test   %eax,%eax
40abed:	0f 84 1f 1f 01 00    	je     0x41cb12
40abf3:	6a 2d                	push   $0x2d
40abf5:	59                   	pop    %ecx
40abf6:	e8 95 0f 00 00       	call   0x40bb90
40abfb:	8b f0                	mov    %eax,%esi
40abfd:	6a 2f                	push   $0x2f
40abff:	58                   	pop    %eax
40ac00:	85 ff                	test   %edi,%edi
40ac02:	0f 85 1a 1f 01 00    	jne    0x41cb22
40ac08:	33 c9                	xor    %ecx,%ecx
40ac0a:	e8 61 20 00 00       	call   0x40cc70
40ac0f:	6a 2f                	push   $0x2f
40ac11:	58                   	pop    %eax
40ac12:	66 89 45 e8          	mov    %ax,-0x18(%ebp)
40ac16:	8d 55 e8             	lea    -0x18(%ebp),%edx
40ac19:	33 c0                	xor    %eax,%eax
40ac1b:	bf f0 4a 44 00       	mov    $0x444af0,%edi
40ac20:	6a 02                	push   $0x2
40ac22:	8b cf                	mov    %edi,%ecx
40ac24:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
40ac28:	e8 03 10 00 00       	call   0x40bc30
40ac2d:	53                   	push   %ebx
40ac2e:	6a 2d                	push   $0x2d
40ac30:	8b d0                	mov    %eax,%edx
40ac32:	59                   	pop    %ecx
40ac33:	e8 c8 fb ff ff       	call   0x40a800
40ac38:	84 c0                	test   %al,%al
40ac3a:	0f 85 fe 1e 01 00    	jne    0x41cb3e
40ac40:	53                   	push   %ebx
40ac41:	33 d2                	xor    %edx,%edx
40ac43:	33 c9                	xor    %ecx,%ecx
40ac45:	e8 c6 22 00 00       	call   0x40cf10
40ac4a:	a1 cc 65 43 00       	mov    0x4365cc,%eax
40ac4f:	66 39 18             	cmp    %bx,(%eax)
40ac52:	74 35                	je     0x40ac89
40ac54:	6a 20                	push   $0x20
40ac56:	59                   	pop    %ecx
40ac57:	e8 14 20 00 00       	call   0x40cc70
40ac5c:	3d 00 40 00 00       	cmp    $0x4000,%eax
40ac61:	75 37                	jne    0x40ac9a
40ac63:	a1 fc 66 43 00       	mov    0x4366fc,%eax
40ac68:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
40ac6b:	e8 60 30 00 00       	call   0x40dcd0
40ac70:	85 c0                	test   %eax,%eax
40ac72:	0f 84 d4 1e 01 00    	je     0x41cb4c
40ac78:	8b 15 fc 66 43 00    	mov    0x4366fc,%edx
40ac7e:	8b c8                	mov    %eax,%ecx
40ac80:	57                   	push   %edi
40ac81:	89 46 3c             	mov    %eax,0x3c(%esi)
40ac84:	e8 17 47 00 00       	call   0x40f3a0
40ac89:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ac8c:	8b c6                	mov    %esi,%eax
40ac8e:	5f                   	pop    %edi
40ac8f:	5e                   	pop    %esi
40ac90:	33 cd                	xor    %ebp,%ecx
40ac92:	5b                   	pop    %ebx
40ac93:	e8 98 be 00 00       	call   0x416b30
40ac98:	c9                   	leave
40ac99:	c3                   	ret
40ac9a:	53                   	push   %ebx
40ac9b:	33 d2                	xor    %edx,%edx
40ac9d:	33 c9                	xor    %ecx,%ecx
40ac9f:	e8 6c 22 00 00       	call   0x40cf10
40aca4:	eb e3                	jmp    0x40ac89
40aca6:	cc                   	int3
40aca7:	cc                   	int3
40aca8:	cc                   	int3
40aca9:	cc                   	int3
40acaa:	cc                   	int3
40acab:	cc                   	int3
40acac:	cc                   	int3
40acad:	cc                   	int3
40acae:	cc                   	int3
40acaf:	cc                   	int3
40acb0:	8b ff                	mov    %edi,%edi
40acb2:	53                   	push   %ebx
40acb3:	56                   	push   %esi
40acb4:	57                   	push   %edi
40acb5:	8b f9                	mov    %ecx,%edi
40acb7:	8b f7                	mov    %edi,%esi
40acb9:	8d 4e 02             	lea    0x2(%esi),%ecx
40acbc:	8d 64 24 00          	lea    0x0(%esp),%esp
40acc0:	66 8b 06             	mov    (%esi),%ax
40acc3:	83 c6 02             	add    $0x2,%esi
40acc6:	66 85 c0             	test   %ax,%ax
40acc9:	75 f5                	jne    0x40acc0
40accb:	2b f1                	sub    %ecx,%esi
40accd:	d1 fe                	sar    $1,%esi
40accf:	46                   	inc    %esi
40acd0:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
40acd3:	e8 f8 2f 00 00       	call   0x40dcd0
40acd8:	8b d8                	mov    %eax,%ebx
40acda:	85 db                	test   %ebx,%ebx
40acdc:	74 42                	je     0x40ad20
40acde:	85 f6                	test   %esi,%esi
40ace0:	74 3e                	je     0x40ad20
40ace2:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
40ace8:	0f 87 71 1e 01 00    	ja     0x41cb5f
40acee:	ba fe ff ff 7f       	mov    $0x7ffffffe,%edx
40acf3:	2b d6                	sub    %esi,%edx
40acf5:	2b fb                	sub    %ebx,%edi
40acf7:	8d 0c 32             	lea    (%edx,%esi,1),%ecx
40acfa:	85 c9                	test   %ecx,%ecx
40acfc:	74 19                	je     0x40ad17
40acfe:	0f b7 0c 07          	movzwl (%edi,%eax,1),%ecx
40ad02:	66 85 c9             	test   %cx,%cx
40ad05:	74 10                	je     0x40ad17
40ad07:	66 89 08             	mov    %cx,(%eax)
40ad0a:	83 c0 02             	add    $0x2,%eax
40ad0d:	83 ee 01             	sub    $0x1,%esi
40ad10:	75 e5                	jne    0x40acf7
40ad12:	83 e8 02             	sub    $0x2,%eax
40ad15:	eb 04                	jmp    0x40ad1b
40ad17:	85 f6                	test   %esi,%esi
40ad19:	74 f7                	je     0x40ad12
40ad1b:	33 c9                	xor    %ecx,%ecx
40ad1d:	66 89 08             	mov    %cx,(%eax)
40ad20:	5f                   	pop    %edi
40ad21:	5e                   	pop    %esi
40ad22:	8b c3                	mov    %ebx,%eax
40ad24:	5b                   	pop    %ebx
40ad25:	c3                   	ret
40ad26:	8b ff                	mov    %edi,%edi
40ad28:	55                   	push   %ebp
40ad29:	8b ec                	mov    %esp,%ebp
40ad2b:	83 ec 0c             	sub    $0xc,%esp
40ad2e:	53                   	push   %ebx
40ad2f:	8b d9                	mov    %ecx,%ebx
40ad31:	56                   	push   %esi
40ad32:	57                   	push   %edi
40ad33:	85 db                	test   %ebx,%ebx
40ad35:	74 09                	je     0x40ad40
40ad37:	83 3d 48 67 43 00 00 	cmpl   $0x0,0x436748
40ad3e:	74 05                	je     0x40ad45
40ad40:	5f                   	pop    %edi
40ad41:	5e                   	pop    %esi
40ad42:	5b                   	pop    %ebx
40ad43:	c9                   	leave
40ad44:	c3                   	ret
40ad45:	83 3d 58 67 43 00 00 	cmpl   $0x0,0x436758
40ad4c:	75 f2                	jne    0x40ad40
40ad4e:	e9 1e 1e 01 00       	jmp    0x41cb71
40ad53:	cc                   	int3
40ad54:	cc                   	int3
40ad55:	cc                   	int3
40ad56:	cc                   	int3
40ad57:	cc                   	int3
40ad58:	cc                   	int3
40ad59:	cc                   	int3
40ad5a:	cc                   	int3
40ad5b:	cc                   	int3
40ad5c:	cc                   	int3
40ad5d:	cc                   	int3
40ad5e:	cc                   	int3
40ad5f:	cc                   	int3
40ad60:	8b ff                	mov    %edi,%edi
40ad62:	55                   	push   %ebp
40ad63:	8b ec                	mov    %esp,%ebp
40ad65:	6a fe                	push   $0xfffffffe
40ad67:	68 f0 c9 42 00       	push   $0x42c9f0
40ad6c:	68 00 6e 41 00       	push   $0x416e00
40ad71:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40ad77:	50                   	push   %eax
40ad78:	81 ec 50 04 00 00    	sub    $0x450,%esp
40ad7e:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
40ad83:	31 45 f8             	xor    %eax,-0x8(%ebp)
40ad86:	33 c5                	xor    %ebp,%eax
40ad88:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40ad8b:	53                   	push   %ebx
40ad8c:	56                   	push   %esi
40ad8d:	57                   	push   %edi
40ad8e:	50                   	push   %eax
40ad8f:	8d 45 f0             	lea    -0x10(%ebp),%eax
40ad92:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40ad98:	8b f9                	mov    %ecx,%edi
40ad9a:	89 bd b0 fb ff ff    	mov    %edi,-0x450(%ebp)
40ada0:	c7 85 ac fb ff ff 00 	movl   $0x0,-0x454(%ebp)
40ada7:	00 00 00
40adaa:	68 04 01 00 00       	push   $0x104
40adaf:	8d 85 d0 fd ff ff    	lea    -0x230(%ebp),%eax
40adb5:	50                   	push   %eax
40adb6:	ff 15 48 a0 44 00    	call   *0x44a048
40adbc:	83 7f 38 00          	cmpl   $0x0,0x38(%edi)
40adc0:	0f 84 9a 1e 01 00    	je     0x41cc60
40adc6:	8d 8d b8 fb ff ff    	lea    -0x448(%ebp),%ecx
40adcc:	e8 5d ac 00 00       	call   0x415a2e
40add1:	80 bd c4 fd ff ff 00 	cmpb   $0x0,-0x23c(%ebp)
40add8:	0f 84 61 1e 01 00    	je     0x41cc3f
40adde:	b8 e7 7f 00 00       	mov    $0x7fe7,%eax
40ade3:	50                   	push   %eax
40ade4:	8d 8d b8 fb ff ff    	lea    -0x448(%ebp),%ecx
40adea:	e8 01 36 00 00       	call   0x40e3f0
40adef:	85 c0                	test   %eax,%eax
40adf1:	0f 88 5e 1e 01 00    	js     0x41cc55
40adf7:	8b 47 38             	mov    0x38(%edi),%eax
40adfa:	66 83 78 02 3a       	cmpw   $0x3a,0x2(%eax)
40adff:	0f 84 b4 02 00 00    	je     0x40b0b9
40ae05:	8d 95 b4 fb ff ff    	lea    -0x44c(%ebp),%edx
40ae0b:	8b cf                	mov    %edi,%ecx
40ae0d:	e8 3e 3b 00 00       	call   0x40e950
40ae12:	8b f0                	mov    %eax,%esi
40ae14:	89 b5 a8 fb ff ff    	mov    %esi,-0x458(%ebp)
40ae1a:	83 fe ff             	cmp    $0xffffffff,%esi
40ae1d:	0f 84 f5 02 00 00    	je     0x40b118
40ae23:	83 fe fe             	cmp    $0xfffffffe,%esi
40ae26:	0f 84 29 1e 01 00    	je     0x41cc55
40ae2c:	8d 04 76             	lea    (%esi,%esi,2),%eax
40ae2f:	8b 04 c5 84 16 40 00 	mov    0x401684(,%eax,8),%eax
40ae36:	89 85 a4 fb ff ff    	mov    %eax,-0x45c(%ebp)
40ae3c:	85 c0                	test   %eax,%eax
40ae3e:	0f 84 38 1e 01 00    	je     0x41cc7c
40ae44:	8b 85 c0 fd ff ff    	mov    -0x240(%ebp),%eax
40ae4a:	85 c0                	test   %eax,%eax
40ae4c:	0f 84 3c 1e 01 00    	je     0x41cc8e
40ae52:	b9 2f 00 00 00       	mov    $0x2f,%ecx
40ae57:	66 89 08             	mov    %cx,(%eax)
40ae5a:	8b 85 c0 fd ff ff    	mov    -0x240(%ebp),%eax
40ae60:	85 c0                	test   %eax,%eax
40ae62:	0f 84 31 1e 01 00    	je     0x41cc99
40ae68:	33 c9                	xor    %ecx,%ecx
40ae6a:	66 89 48 02          	mov    %cx,0x2(%eax)
40ae6e:	8b 95 c0 fd ff ff    	mov    -0x240(%ebp),%edx
40ae74:	85 d2                	test   %edx,%edx
40ae76:	0f 84 28 1e 01 00    	je     0x41cca4
40ae7c:	6a 02                	push   $0x2
40ae7e:	8b 4f 3c             	mov    0x3c(%edi),%ecx
40ae81:	e8 aa 0d 00 00       	call   0x40bc30
40ae86:	8b d8                	mov    %eax,%ebx
40ae88:	83 fe 0a             	cmp    $0xa,%esi
40ae8b:	0f 84 75 01 00 00    	je     0x40b006
40ae91:	83 fe 1f             	cmp    $0x1f,%esi
40ae94:	74 13                	je     0x40aea9
40ae96:	6a 01                	push   $0x1
40ae98:	8b d3                	mov    %ebx,%edx
40ae9a:	8b ce                	mov    %esi,%ecx
40ae9c:	e8 5f f9 ff ff       	call   0x40a800
40aea1:	84 c0                	test   %al,%al
40aea3:	0f 85 ac 1d 01 00    	jne    0x41cc55
40aea9:	85 db                	test   %ebx,%ebx
40aeab:	0f 84 c0 00 00 00    	je     0x40af71
40aeb1:	66 83 3b 00          	cmpw   $0x0,(%ebx)
40aeb5:	0f 84 b0 00 00 00    	je     0x40af6b
40aebb:	8b f3                	mov    %ebx,%esi
40aebd:	8d 4e 02             	lea    0x2(%esi),%ecx
40aec0:	66 8b 06             	mov    (%esi),%ax
40aec3:	83 c6 02             	add    $0x2,%esi
40aec6:	66 85 c0             	test   %ax,%ax
40aec9:	75 f5                	jne    0x40aec0
40aecb:	2b f1                	sub    %ecx,%esi
40aecd:	d1 fe                	sar    $1,%esi
40aecf:	6a 22                	push   $0x22
40aed1:	53                   	push   %ebx
40aed2:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40aed8:	83 c4 08             	add    $0x8,%esp
40aedb:	85 c0                	test   %eax,%eax