40fb01:	75 ca                	jne    0x40facd
40fb03:	e9 63 14 01 00       	jmp    0x420f6b
40fb08:	d5 f8                	aad    $0xf8
40fb0a:	40                   	inc    %eax
40fb0b:	00 7c 0e 42          	add    %bh,0x42(%esi,%ecx,1)
40fb17:	00 00                	add    %al,(%eax)
40fb19:	01 00                	add    %eax,(%eax)
40fb1b:	01 00                	add    %eax,(%eax)
40fb1d:	01 00                	add    %eax,(%eax)
40fb1f:	01 00                	add    %eax,(%eax)
40fb21:	00 00                	add    %al,(%eax)
40fb23:	00 00                	add    %al,(%eax)
40fb25:	00 00                	add    %al,(%eax)
40fb27:	00 01                	add    %al,(%ecx)
40fb29:	01 01                	add    %eax,(%ecx)
40fb2b:	01 01                	add    %eax,(%ecx)
40fb2d:	01 00                	add    %eax,(%eax)
40fb2f:	01 01                	add    %eax,(%ecx)
40fb31:	01 01                	add    %eax,(%ecx)
40fb33:	01 01                	add    %eax,(%ecx)
40fb35:	01 01                	add    %eax,(%ecx)
40fb37:	01 01                	add    %eax,(%ecx)
40fb39:	01 01                	add    %eax,(%ecx)
40fb3b:	01 01                	add    %eax,(%ecx)
40fb3d:	01 01                	add    %eax,(%ecx)
40fb3f:	01 01                	add    %eax,(%ecx)
40fb41:	01 01                	add    %eax,(%ecx)
40fb43:	01 01                	add    %eax,(%ecx)
40fb45:	01 01                	add    %eax,(%ecx)
40fb47:	01 01                	add    %eax,(%ecx)
40fb49:	01 01                	add    %eax,(%ecx)
40fb4b:	01 01                	add    %eax,(%ecx)
40fb4d:	01 01                	add    %eax,(%ecx)
40fb4f:	01 01                	add    %eax,(%ecx)
40fb59:	cc                   	int3
40fb5a:	cc                   	int3
40fb5b:	cc                   	int3
40fb5c:	cc                   	int3
40fb5d:	cc                   	int3
40fb5e:	cc                   	int3
40fb5f:	cc                   	int3
40fb60:	8b ff                	mov    %edi,%edi
40fb62:	55                   	push   %ebp
40fb63:	8b ec                	mov    %esp,%ebp
40fb65:	83 e4 f8             	and    $0xfffffff8,%esp
40fb68:	83 ec 34             	sub    $0x34,%esp
40fb6b:	53                   	push   %ebx
40fb6c:	56                   	push   %esi
40fb6d:	8b 75 08             	mov    0x8(%ebp),%esi
40fb70:	8b d9                	mov    %ecx,%ebx
40fb72:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40fb76:	57                   	push   %edi
40fb77:	85 f6                	test   %esi,%esi
40fb79:	0f 84 f8 13 01 00    	je     0x420f77
40fb7f:	0f b7 16             	movzwl (%esi),%edx
40fb82:	8b c2                	mov    %edx,%eax
40fb84:	8b ca                	mov    %edx,%ecx
40fb86:	81 e1 ff 0f 00 00    	and    $0xfff,%ecx
40fb8c:	83 f9 42             	cmp    $0x42,%ecx
40fb8f:	0f 83 6b 02 00 00    	jae    0x40fe00
40fb95:	2d 41 10 00 00       	sub    $0x1041,%eax
40fb9a:	0f 84 6e 02 00 00    	je     0x40fe0e
40fba0:	83 e8 07             	sub    $0x7,%eax
40fba3:	0f 84 65 02 00 00    	je     0x40fe0e
40fba9:	8b c2                	mov    %edx,%eax
40fbab:	b9 08 00 00 00       	mov    $0x8,%ecx
40fbb0:	25 ff 0f 00 00       	and    $0xfff,%eax
40fbb5:	66 3b c8             	cmp    %ax,%cx
40fbb8:	0f 84 15 02 00 00    	je     0x40fdd3
40fbbe:	c6 44 24 13 00       	movb   $0x0,0x13(%esp)
40fbc3:	8b 83 b8 09 00 00    	mov    0x9b8(%ebx),%eax
40fbc9:	81 c3 b8 09 00 00    	add    $0x9b8,%ebx
40fbcf:	33 c9                	xor    %ecx,%ecx
40fbd1:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
40fbd5:	8d 78 07             	lea    0x7(%eax),%edi
40fbd8:	83 e7 f8             	and    $0xfffffff8,%edi
40fbdb:	2b f8                	sub    %eax,%edi
40fbdd:	74 37                	je     0x40fc16
40fbdf:	39 4b 08             	cmp    %ecx,0x8(%ebx)
40fbe2:	74 32                	je     0x40fc16
40fbe4:	8b 4b 10             	mov    0x10(%ebx),%ecx
40fbe7:	6a 00                	push   $0x0
40fbe9:	57                   	push   %edi
40fbea:	89 4c 24 28          	mov    %ecx,0x28(%esp)
40fbee:	8b 01                	mov    (%ecx),%eax
40fbf0:	68 18 86 43 00       	push   $0x438618
40fbf5:	8b 40 04             	mov    0x4(%eax),%eax
40fbf8:	89 44 24 24          	mov    %eax,0x24(%esp)
40fbfc:	3d 70 2d 41 00       	cmp    $0x412d70,%eax
40fc01:	0f 85 7a 13 01 00    	jne    0x420f81
40fc07:	e8 64 31 00 00       	call   0x412d70
40fc0c:	8b c8                	mov    %eax,%ecx
40fc0e:	85 c9                	test   %ecx,%ecx
40fc10:	0f 88 a5 00 00 00    	js     0x40fcbb
40fc16:	01 3b                	add    %edi,(%ebx)
40fc18:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
40fc1c:	74 2f                	je     0x40fc4d
40fc1e:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
40fc22:	8b 7b 10             	mov    0x10(%ebx),%edi
40fc25:	6a 00                	push   $0x0
40fc27:	0f 85 69 13 01 00    	jne    0x420f96
40fc2d:	8b 07                	mov    (%edi),%eax
40fc2f:	6a 10                	push   $0x10
40fc31:	56                   	push   %esi
40fc32:	8b 40 04             	mov    0x4(%eax),%eax
40fc35:	89 44 24 2c          	mov    %eax,0x2c(%esp)
40fc39:	3d 70 2d 41 00       	cmp    $0x412d70,%eax
40fc3e:	0f 85 9d 13 01 00    	jne    0x420fe1
40fc44:	8b cf                	mov    %edi,%ecx
40fc46:	e8 25 31 00 00       	call   0x412d70
40fc4b:	8b c8                	mov    %eax,%ecx
40fc4d:	85 c9                	test   %ecx,%ecx
40fc4f:	78 6a                	js     0x40fcbb
40fc51:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
40fc55:	8b 03                	mov    (%ebx),%eax
40fc57:	0f 85 97 13 01 00    	jne    0x420ff4
40fc5d:	83 c0 10             	add    $0x10,%eax
40fc60:	89 03                	mov    %eax,(%ebx)
40fc62:	85 c9                	test   %ecx,%ecx
40fc64:	78 55                	js     0x40fcbb
40fc66:	0f b7 06             	movzwl (%esi),%eax
40fc69:	83 f8 1f             	cmp    $0x1f,%eax
40fc6c:	74 58                	je     0x40fcc6
40fc6e:	83 c0 e2             	add    $0xffffffe2,%eax
40fc71:	83 f8 2a             	cmp    $0x2a,%eax
40fc74:	77 24                	ja     0x40fc9a
40fc76:	0f b6 80 40 fe 40 00 	movzbl 0x40fe40(%eax),%eax
40fc7d:	ff 24 85 2c fe 40 00 	jmp    *0x40fe2c(,%eax,4)
40fc84:	ff 76 0c             	push   0xc(%esi)
40fc87:	ff 76 08             	push   0x8(%esi)
40fc8a:	8b cb                	mov    %ebx,%ecx
40fc8c:	e8 85 f0 ff ff       	call   0x40ed16
40fc91:	8b c8                	mov    %eax,%ecx
40fc93:	eb 05                	jmp    0x40fc9a
40fc95:	01 33                	add    %esi,(%ebx)
40fc97:	8b 75 08             	mov    0x8(%ebp),%esi
40fc9a:	8b 7c 24 14          	mov    0x14(%esp),%edi
40fc9e:	85 c9                	test   %ecx,%ecx
40fca0:	78 0e                	js     0x40fcb0
40fca2:	0f b7 06             	movzwl (%esi),%eax
40fca5:	a9 00 10 00 00       	test   $0x1000,%eax
40fcaa:	0f 85 e4 00 00 00    	jne    0x40fd94
40fcb0:	80 7c 24 13 00       	cmpb   $0x0,0x13(%esp)
40fcb5:	0f 85 2e 01 00 00    	jne    0x40fde9
40fcbb:	8b c1                	mov    %ecx,%eax
40fcbd:	5f                   	pop    %edi
40fcbe:	5e                   	pop    %esi
40fcbf:	5b                   	pop    %ebx
40fcc0:	8b e5                	mov    %ebp,%esp
40fcc2:	5d                   	pop    %ebp
40fcc3:	c2 04 00             	ret    $0x4
40fcc6:	8b 7e 08             	mov    0x8(%esi),%edi
40fcc9:	89 7c 24 20          	mov    %edi,0x20(%esp)
40fccd:	85 ff                	test   %edi,%edi
40fccf:	0f 84 c3 13 01 00    	je     0x421098
40fcd5:	8b f7                	mov    %edi,%esi
40fcd7:	8d 4e 02             	lea    0x2(%esi),%ecx
40fcda:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40fce0:	66 8b 06             	mov    (%esi),%ax
40fce3:	83 c6 02             	add    $0x2,%esi
40fce6:	66 85 c0             	test   %ax,%ax
40fce9:	75 f5                	jne    0x40fce0
40fceb:	8b 03                	mov    (%ebx),%eax
40fced:	2b f1                	sub    %ecx,%esi
40fcef:	d1 fe                	sar    $1,%esi
40fcf1:	33 c9                	xor    %ecx,%ecx
40fcf3:	89 74 24 18          	mov    %esi,0x18(%esp)
40fcf7:	8d 50 03             	lea    0x3(%eax),%edx
40fcfa:	83 e2 fc             	and    $0xfffffffc,%edx
40fcfd:	2b d0                	sub    %eax,%edx
40fcff:	89 54 24 24          	mov    %edx,0x24(%esp)
40fd03:	0f 85 20 13 01 00    	jne    0x421029
40fd09:	01 13                	add    %edx,(%ebx)
40fd0b:	83 7b 08 00          	cmpl   $0x0,0x8(%ebx)
40fd0f:	74 2b                	je     0x40fd3c
40fd11:	8b 4b 10             	mov    0x10(%ebx),%ecx
40fd14:	6a 00                	push   $0x0
40fd16:	89 4c 24 28          	mov    %ecx,0x28(%esp)
40fd1a:	6a 04                	push   $0x4
40fd1c:	8b 01                	mov    (%ecx),%eax
40fd1e:	8b 40 04             	mov    0x4(%eax),%eax
40fd21:	89 44 24 28          	mov    %eax,0x28(%esp)
40fd25:	3d 70 2d 41 00       	cmp    $0x412d70,%eax
40fd2a:	0f 85 39 13 01 00    	jne    0x421069
40fd30:	8d 44 24 20          	lea    0x20(%esp),%eax
40fd34:	50                   	push   %eax
40fd35:	e8 36 30 00 00       	call   0x412d70
40fd3a:	8b c8                	mov    %eax,%ecx
40fd3c:	85 c9                	test   %ecx,%ecx
40fd3e:	0f 88 53 ff ff ff    	js     0x40fc97
40fd44:	83 03 04             	addl   $0x4,(%ebx)
40fd47:	85 c9                	test   %ecx,%ecx
40fd49:	0f 88 48 ff ff ff    	js     0x40fc97
40fd4f:	33 c9                	xor    %ecx,%ecx
40fd51:	8d 34 75 02 00 00 00 	lea    0x2(,%esi,2),%esi
40fd58:	39 4b 08             	cmp    %ecx,0x8(%ebx)
40fd5b:	0f 84 34 ff ff ff    	je     0x40fc95
40fd61:	8b 4b 10             	mov    0x10(%ebx),%ecx
40fd64:	6a 00                	push   $0x0
40fd66:	56                   	push   %esi
40fd67:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
40fd6b:	8b 01                	mov    (%ecx),%eax
40fd6d:	57                   	push   %edi
40fd6e:	8b 40 04             	mov    0x4(%eax),%eax
40fd71:	89 44 24 2c          	mov    %eax,0x2c(%esp)
40fd75:	3d 70 2d 41 00       	cmp    $0x412d70,%eax
40fd7a:	0f 85 03 13 01 00    	jne    0x421083
40fd80:	e8 eb 2f 00 00       	call   0x412d70
40fd85:	8b c8                	mov    %eax,%ecx
40fd87:	85 c9                	test   %ecx,%ecx
40fd89:	0f 89 06 ff ff ff    	jns    0x40fc95
40fd8f:	e9 03 ff ff ff       	jmp    0x40fc97
40fd94:	25 ff 0f 00 00       	and    $0xfff,%eax
40fd99:	83 f8 1f             	cmp    $0x1f,%eax
40fd9c:	0f 85 0d 13 01 00    	jne    0x4210af
40fda2:	33 db                	xor    %ebx,%ebx
40fda4:	39 5e 08             	cmp    %ebx,0x8(%esi)
40fda7:	0f 86 03 ff ff ff    	jbe    0x40fcb0
40fdad:	8d 49 00             	lea    0x0(%ecx),%ecx
40fdb0:	85 c9                	test   %ecx,%ecx
40fdb2:	0f 88 f8 fe ff ff    	js     0x40fcb0
40fdb8:	8b 46 0c             	mov    0xc(%esi),%eax
40fdbb:	8b cf                	mov    %edi,%ecx
40fdbd:	ff 34 98             	push   (%eax,%ebx,4)
40fdc0:	e8 f6 3b 00 00       	call   0x4139bb
40fdc5:	43                   	inc    %ebx
40fdc6:	8b c8                	mov    %eax,%ecx
40fdc8:	3b 5e 08             	cmp    0x8(%esi),%ebx
40fdcb:	0f 83 df fe ff ff    	jae    0x40fcb0
40fdd1:	eb dd                	jmp    0x40fdb0
40fdd3:	81 e2 1f f0 00 00    	and    $0xf01f,%edx
40fdd9:	c6 44 24 13 01       	movb   $0x1,0x13(%esp)
40fdde:	83 ca 1f             	or     $0x1f,%edx
40fde1:	66 89 16             	mov    %dx,(%esi)
40fde4:	e9 da fd ff ff       	jmp    0x40fbc3
40fde9:	66 8b 06             	mov    (%esi),%ax
40fdec:	ba 08 f0 00 00       	mov    $0xf008,%edx
40fdf1:	66 23 c2             	and    %dx,%ax
40fdf4:	66 83 c8 08          	or     $0x8,%ax
40fdf8:	66 89 06             	mov    %ax,(%esi)
40fdfb:	e9 bb fe ff ff       	jmp    0x40fcbb
40fe00:	83 f9 46             	cmp    $0x46,%ecx
40fe03:	76 09                	jbe    0x40fe0e
40fe05:	83 f9 49             	cmp    $0x49,%ecx
40fe08:	0f 85 87 fd ff ff    	jne    0x40fb95
40fe0e:	b8 13 0d 04 80       	mov    $0x80040d13,%eax
40fe13:	e9 a5 fe ff ff       	jmp    0x40fcbd
40fe18:	ff 76 08             	push   0x8(%esi)
40fe1b:	8b cb                	mov    %ebx,%ecx
40fe1d:	6a 10                	push   $0x10
40fe1f:	e8 f2 ee ff ff       	call   0x40ed16
40fe24:	8b c8                	mov    %eax,%ecx
40fe26:	e9 6f fe ff ff       	jmp    0x40fc9a
40fe2b:	90                   	nop
40fe2c:	79 11                	jns    0x40fe3f
40fe2e:	42                   	inc    %edx
40fe2f:	00 84 fc 40 00 fc 0f 	add    %al,0xffc0040(%esp,%edi,8)
40fe36:	42                   	inc    %edx
40fe37:	00 18                	add    %bl,(%eax)
40fe39:	fe 40 00             	incb   0x0(%eax)
40fe3c:	9a fc 40 00 00 04 04 	lcall  $0x404,$0x40fc
40fe43:	04 04                	add    $0x4,%al
40fe45:	04 04                	add    $0x4,%al
40fe47:	04 04                	add    $0x4,%al
40fe49:	04 04                	add    $0x4,%al
40fe4b:	04 04                	add    $0x4,%al
40fe4d:	04 04                	add    $0x4,%al
40fe4f:	04 04                	add    $0x4,%al
40fe51:	04 04                	add    $0x4,%al
40fe53:	04 04                	add    $0x4,%al
40fe55:	04 04                	add    $0x4,%al
40fe57:	04 04                	add    $0x4,%al
40fe59:	04 04                	add    $0x4,%al
40fe5b:	04 04                	add    $0x4,%al
40fe5d:	04 04                	add    $0x4,%al
40fe5f:	04 04                	add    $0x4,%al
40fe61:	04 04                	add    $0x4,%al
40fe63:	01 04 04             	add    %eax,(%esp,%eax,1)
40fe66:	04 04                	add    $0x4,%al
40fe68:	04 02                	add    $0x2,%al
40fe6a:	03 cc                	add    %esp,%ecx
40fe6c:	cc                   	int3
40fe6d:	cc                   	int3
40fe6e:	cc                   	int3
40fe6f:	cc                   	int3
40fe70:	8b ff                	mov    %edi,%edi
40fe72:	55                   	push   %ebp
40fe73:	8b ec                	mov    %esp,%ebp
40fe75:	6a ff                	push   $0xffffffff
40fe77:	68 a3 e7 41 00       	push   $0x41e7a3
40fe7c:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40fe82:	50                   	push   %eax
40fe83:	51                   	push   %ecx
40fe84:	b8 ac 58 00 00       	mov    $0x58ac,%eax
40fe89:	e8 a2 e1 00 00       	call   0x41e030
40fe8e:	a1 08 85 43 00       	mov    0x438508,%eax
40fe93:	33 c5                	xor    %ebp,%eax
40fe95:	89 45 ec             	mov    %eax,-0x14(%ebp)
40fe98:	53                   	push   %ebx
40fe99:	56                   	push   %esi
40fe9a:	57                   	push   %edi
40fe9b:	50                   	push   %eax
40fe9c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40fe9f:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40fea5:	89 65 f0             	mov    %esp,-0x10(%ebp)
40fea8:	8b 7d 08             	mov    0x8(%ebp),%edi
40feab:	8d 8d 9c a7 ff ff    	lea    -0x5864(%ebp),%ecx
40feb1:	89 bd 18 a8 ff ff    	mov    %edi,-0x57e8(%ebp)
40feb7:	e8 1f 4d 01 00       	call   0x424bdb
40febc:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40fec3:	a1 9c 8d 43 00       	mov    0x438d9c,%eax
40fec8:	51                   	push   %ecx
40fec9:	8d 8d 54 a7 ff ff    	lea    -0x58ac(%ebp),%ecx
40fecf:	89 47 7c             	mov    %eax,0x7c(%edi)
40fed2:	e8 18 c5 ff ff       	call   0x40c3ef
40fed7:	b9 84 8d 43 00       	mov    $0x438d84,%ecx
40fedc:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40fee0:	e8 0d 7e 01 00       	call   0x427cf2
40fee5:	8b 35 18 8a 43 00    	mov    0x438a18,%esi
40feeb:	b9 84 8d 43 00       	mov    $0x438d84,%ecx
40fef0:	8d 46 01             	lea    0x1(%esi),%eax
40fef3:	a3 18 8a 43 00       	mov    %eax,0x438a18
40fef8:	e8 7b 8c 01 00       	call   0x428b78
40fefd:	8d 87 80 00 00 00    	lea    0x80(%edi),%eax
40ff03:	50                   	push   %eax
40ff04:	8d 8d 1c b1 ff ff    	lea    -0x4ee4(%ebp),%ecx
40ff0a:	e8 39 5d 00 00       	call   0x415c48
40ff0f:	6a 0a                	push   $0xa
40ff11:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40ff14:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40ff18:	50                   	push   %eax
40ff19:	56                   	push   %esi
40ff1a:	ff 15 f0 a4 43 00    	call   *0x43a4f0
40ff20:	83 c4 0c             	add    $0xc,%esp
40ff23:	8d 8d 1c b1 ff ff    	lea    -0x4ee4(%ebp),%ecx
40ff29:	50                   	push   %eax
40ff2a:	e8 3f 5d 01 00       	call   0x425c6e
40ff2f:	8d 8d c8 be ff ff    	lea    -0x4138(%ebp),%ecx
40ff35:	e8 e0 c4 ff ff       	call   0x40c41a
40ff3a:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40ff3e:	ff b5 20 b1 ff ff    	push   -0x4ee0(%ebp)
40ff44:	e8 f3 ee ff ff       	call   0x40ee3c
40ff49:	85 c0                	test   %eax,%eax
40ff4b:	0f 88 e0 1b 00 00    	js     0x411b31
40ff51:	83 3d 20 8a 43 00 00 	cmpl   $0x0,0x438a20
40ff58:	a1 70 8d 43 00       	mov    0x438d70,%eax
40ff5d:	89 85 d0 be ff ff    	mov    %eax,-0x4130(%ebp)
40ff63:	a1 7c 8d 43 00       	mov    0x438d7c,%eax
40ff68:	89 85 d4 be ff ff    	mov    %eax,-0x412c(%ebp)
40ff6e:	74 0a                	je     0x40ff7a