40f9c9:	74 0f                	je     0x40f9da
40f9cb:	b9 04 14 00 00       	mov    $0x1404,%ecx
40f9d0:	66 3b c8             	cmp    %ax,%cx
40f9d3:	74 05                	je     0x40f9da
40f9d5:	8d 42 05             	lea    0x5(%edx),%eax
40f9d8:	eb 03                	jmp    0x40f9dd
40f9da:	66 8b c2             	mov    %dx,%ax
40f9dd:	66 a3 1c a3 41 00    	mov    %ax,0x41a31c
40f9e3:	c9                   	leave
40f9e4:	c3                   	ret
40f9e5:	8b ff                	mov    %edi,%edi
40f9e7:	55                   	push   %ebp
40f9e8:	8b ec                	mov    %esp,%ebp
40f9ea:	51                   	push   %ecx
40f9eb:	8b c2                	mov    %edx,%eax
40f9ed:	53                   	push   %ebx
40f9ee:	56                   	push   %esi
40f9ef:	33 db                	xor    %ebx,%ebx
40f9f1:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f9f4:	21 18                	and    %ebx,(%eax)
40f9f6:	8b f1                	mov    %ecx,%esi
40f9f8:	e8 7d ff ff ff       	call   0x40f97a
40f9fd:	0f b7 c0             	movzwl %ax,%eax
40fa00:	50                   	push   %eax
40fa01:	8b c6                	mov    %esi,%eax
40fa03:	c1 e8 04             	shr    $0x4,%eax
40fa06:	40                   	inc    %eax
40fa07:	0f b7 c0             	movzwl %ax,%eax
40fa0a:	50                   	push   %eax
40fa0b:	6a 06                	push   $0x6
40fa0d:	ff 35 18 a3 41 00    	push   0x41a318
40fa13:	ff 15 ac b1 41 00    	call   *0x41b1ac
40fa19:	85 c0                	test   %eax,%eax
40fa1b:	74 7d                	je     0x40fa9a
40fa1d:	50                   	push   %eax
40fa1e:	ff 35 18 a3 41 00    	push   0x41a318
40fa24:	ff 15 b0 b1 41 00    	call   *0x41b1b0
40fa2a:	85 c0                	test   %eax,%eax
40fa2c:	74 6c                	je     0x40fa9a
40fa2e:	57                   	push   %edi
40fa2f:	50                   	push   %eax
40fa30:	ff 15 b4 b1 41 00    	call   *0x41b1b4
40fa36:	8b f8                	mov    %eax,%edi
40fa38:	85 ff                	test   %edi,%edi
40fa3a:	74 5d                	je     0x40fa99
40fa3c:	83 e6 0f             	and    $0xf,%esi
40fa3f:	76 0e                	jbe    0x40fa4f
40fa41:	0f b7 07             	movzwl (%edi),%eax
40fa44:	8d 3c 47             	lea    (%edi,%eax,2),%edi
40fa47:	83 c7 02             	add    $0x2,%edi
40fa4a:	83 ee 01             	sub    $0x1,%esi
40fa4d:	75 f2                	jne    0x40fa41
40fa4f:	0f b7 1f             	movzwl (%edi),%ebx
40fa52:	85 db                	test   %ebx,%ebx
40fa54:	74 43                	je     0x40fa99
40fa56:	33 c9                	xor    %ecx,%ecx
40fa58:	8d 43 01             	lea    0x1(%ebx),%eax
40fa5b:	6a 02                	push   $0x2
40fa5d:	5a                   	pop    %edx
40fa5e:	f7 e2                	mul    %edx
40fa60:	0f 90 c1             	seto   %cl
40fa63:	f7 d9                	neg    %ecx
40fa65:	0b c8                	or     %eax,%ecx
40fa67:	51                   	push   %ecx
40fa68:	e8 1f 3b 00 00       	call   0x41358c
40fa6d:	59                   	pop    %ecx
40fa6e:	8b c8                	mov    %eax,%ecx
40fa70:	8b 45 fc             	mov    -0x4(%ebp),%eax
40fa73:	89 08                	mov    %ecx,(%eax)
40fa75:	85 c9                	test   %ecx,%ecx
40fa77:	74 1e                	je     0x40fa97
40fa79:	8d 34 1b             	lea    (%ebx,%ebx,1),%esi
40fa7c:	56                   	push   %esi
40fa7d:	8d 47 02             	lea    0x2(%edi),%eax
40fa80:	50                   	push   %eax
40fa81:	51                   	push   %ecx
40fa82:	e8 57 42 00 00       	call   0x413cde
40fa87:	8b 45 fc             	mov    -0x4(%ebp),%eax
40fa8a:	83 c4 0c             	add    $0xc,%esp
40fa8d:	33 c9                	xor    %ecx,%ecx
40fa8f:	8b 00                	mov    (%eax),%eax
40fa91:	66 89 0c 06          	mov    %cx,(%esi,%eax,1)
40fa95:	eb 02                	jmp    0x40fa99
40fa97:	33 db                	xor    %ebx,%ebx
40fa99:	5f                   	pop    %edi
40fa9a:	5e                   	pop    %esi
40fa9b:	8b c3                	mov    %ebx,%eax
40fa9d:	5b                   	pop    %ebx
40fa9e:	c9                   	leave
40fa9f:	c3                   	ret
40faa0:	8b ff                	mov    %edi,%edi
40faa2:	53                   	push   %ebx
40faa3:	56                   	push   %esi
40faa4:	57                   	push   %edi
40faa5:	8b f9                	mov    %ecx,%edi
40faa7:	33 db                	xor    %ebx,%ebx
40faa9:	66 8b f2             	mov    %dx,%si
40faac:	89 1f                	mov    %ebx,(%edi)
40faae:	e8 c7 fe ff ff       	call   0x40f97a
40fab3:	0f b7 c0             	movzwl %ax,%eax
40fab6:	50                   	push   %eax
40fab7:	0f b7 c6             	movzwl %si,%eax
40faba:	50                   	push   %eax
40fabb:	6a 05                	push   $0x5
40fabd:	ff 35 18 a3 41 00    	push   0x41a318
40fac3:	ff 15 ac b1 41 00    	call   *0x41b1ac
40fac9:	85 c0                	test   %eax,%eax
40facb:	74 1f                	je     0x40faec
40facd:	50                   	push   %eax
40face:	ff 35 18 a3 41 00    	push   0x41a318
40fad4:	ff 15 b0 b1 41 00    	call   *0x41b1b0
40fada:	85 c0                	test   %eax,%eax
40fadc:	74 0e                	je     0x40faec
40fade:	50                   	push   %eax
40fadf:	ff 15 b4 b1 41 00    	call   *0x41b1b4
40fae5:	85 c0                	test   %eax,%eax
40fae7:	89 07                	mov    %eax,(%edi)
40fae9:	0f 95 c3             	setne  %bl
40faec:	5f                   	pop    %edi
40faed:	5e                   	pop    %esi
40faee:	8b c3                	mov    %ebx,%eax
40faf0:	5b                   	pop    %ebx
40faf1:	c3                   	ret
40faf2:	cc                   	int3
40faf3:	cc                   	int3
40faf4:	cc                   	int3
40faf5:	cc                   	int3
40faf6:	cc                   	int3
40faf7:	cc                   	int3
40faf8:	cc                   	int3
40faf9:	cc                   	int3
40fafa:	cc                   	int3
40fafb:	cc                   	int3
40fafc:	cc                   	int3
40fafd:	cc                   	int3
40fafe:	cc                   	int3
40faff:	cc                   	int3
40fb00:	8b ff                	mov    %edi,%edi
40fb02:	55                   	push   %ebp
40fb03:	8b ec                	mov    %esp,%ebp
40fb05:	51                   	push   %ecx
40fb06:	53                   	push   %ebx
40fb07:	56                   	push   %esi
40fb08:	8b 75 14             	mov    0x14(%ebp),%esi
40fb0b:	33 db                	xor    %ebx,%ebx
40fb0d:	81 7d 0c 10 01 00 00 	cmpl   $0x110,0xc(%ebp)
40fb14:	57                   	push   %edi
40fb15:	8b 7d 08             	mov    0x8(%ebp),%edi
40fb18:	75 11                	jne    0x40fb2b
40fb1a:	85 f6                	test   %esi,%esi
40fb1c:	74 0d                	je     0x40fb2b
40fb1e:	56                   	push   %esi
40fb1f:	6a 08                	push   $0x8
40fb21:	57                   	push   %edi
40fb22:	ff 15 24 b2 41 00    	call   *0x41b224
40fb28:	89 7e 04             	mov    %edi,0x4(%esi)
40fb2b:	6a 08                	push   $0x8
40fb2d:	57                   	push   %edi
40fb2e:	ff 15 20 b2 41 00    	call   *0x41b220
40fb34:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fb37:	85 c0                	test   %eax,%eax
40fb39:	74 41                	je     0x40fb7c
40fb3b:	8b 00                	mov    (%eax),%eax
40fb3d:	56                   	push   %esi
40fb3e:	ff 75 10             	push   0x10(%ebp)
40fb41:	8b 70 04             	mov    0x4(%eax),%esi
40fb44:	8b ce                	mov    %esi,%ecx
40fb46:	ff 75 0c             	push   0xc(%ebp)
40fb49:	ff 15 90 b3 41 00    	call   *0x41b390
40fb4f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40fb52:	ff d6                	call   *%esi
40fb54:	83 7d 0c 4e          	cmpl   $0x4e,0xc(%ebp)
40fb58:	8b d8                	mov    %eax,%ebx
40fb5a:	75 05                	jne    0x40fb61
40fb5c:	53                   	push   %ebx
40fb5d:	6a 00                	push   $0x0
40fb5f:	eb 14                	jmp    0x40fb75
40fb61:	81 7d 0c 82 00 00 00 	cmpl   $0x82,0xc(%ebp)
40fb68:	75 12                	jne    0x40fb7c
40fb6a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40fb6d:	6a 00                	push   $0x0
40fb6f:	6a 08                	push   $0x8
40fb71:	83 60 04 00          	andl   $0x0,0x4(%eax)
40fb75:	57                   	push   %edi
40fb76:	ff 15 24 b2 41 00    	call   *0x41b224
40fb7c:	5f                   	pop    %edi
40fb7d:	5e                   	pop    %esi
40fb7e:	8b c3                	mov    %ebx,%eax
40fb80:	5b                   	pop    %ebx
40fb81:	c9                   	leave
40fb82:	c2 10 00             	ret    $0x10
40fb85:	8b ff                	mov    %edi,%edi
40fb87:	55                   	push   %ebp
40fb88:	8b ec                	mov    %esp,%ebp
40fb8a:	51                   	push   %ecx
40fb8b:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40fb8f:	56                   	push   %esi
40fb90:	8b f1                	mov    %ecx,%esi
40fb92:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40fb95:	e8 06 ff ff ff       	call   0x40faa0
40fb9a:	85 c0                	test   %eax,%eax
40fb9c:	74 18                	je     0x40fbb6
40fb9e:	ff 75 08             	push   0x8(%ebp)
40fba1:	68 00 fb 40 00       	push   $0x40fb00
40fba6:	56                   	push   %esi
40fba7:	ff 75 fc             	push   -0x4(%ebp)
40fbaa:	ff 35 18 a3 41 00    	push   0x41a318
40fbb0:	ff 15 88 b2 41 00    	call   *0x41b288
40fbb6:	5e                   	pop    %esi
40fbb7:	c9                   	leave
40fbb8:	c2 04 00             	ret    $0x4
40fbbb:	8b ff                	mov    %edi,%edi
40fbbd:	55                   	push   %ebp
40fbbe:	8b ec                	mov    %esp,%ebp
40fbc0:	83 ec 0c             	sub    $0xc,%esp
40fbc3:	53                   	push   %ebx
40fbc4:	56                   	push   %esi
40fbc5:	8b da                	mov    %edx,%ebx
40fbc7:	33 f6                	xor    %esi,%esi
40fbc9:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40fbcc:	89 75 f8             	mov    %esi,-0x8(%ebp)
40fbcf:	89 75 fc             	mov    %esi,-0x4(%ebp)
40fbd2:	89 33                	mov    %esi,(%ebx)
40fbd4:	6a 02                	push   $0x2
40fbd6:	58                   	pop    %eax
40fbd7:	83 e9 01             	sub    $0x1,%ecx
40fbda:	74 30                	je     0x40fc0c
40fbdc:	83 e9 01             	sub    $0x1,%ecx
40fbdf:	74 27                	je     0x40fc08
40fbe1:	2b c8                	sub    %eax,%ecx
40fbe3:	74 1f                	je     0x40fc04
40fbe5:	83 e9 04             	sub    $0x4,%ecx
40fbe8:	74 16                	je     0x40fc00
40fbea:	83 e9 08             	sub    $0x8,%ecx
40fbed:	74 0d                	je     0x40fbfc
40fbef:	83 e9 10             	sub    $0x10,%ecx
40fbf2:	0f 85 a6 00 00 00    	jne    0x40fc9e
40fbf8:	6a 56                	push   $0x56
40fbfa:	eb 12                	jmp    0x40fc0e
40fbfc:	6a 55                	push   $0x55
40fbfe:	eb 0e                	jmp    0x40fc0e
40fc00:	6a 54                	push   $0x54
40fc02:	eb 0a                	jmp    0x40fc0e
40fc04:	6a 53                	push   $0x53
40fc06:	eb 06                	jmp    0x40fc0e
40fc08:	6a 52                	push   $0x52
40fc0a:	eb 02                	jmp    0x40fc0e
40fc0c:	6a 51                	push   $0x51
40fc0e:	59                   	pop    %ecx
40fc0f:	57                   	push   %edi
40fc10:	8d 55 f8             	lea    -0x8(%ebp),%edx
40fc13:	e8 cd fd ff ff       	call   0x40f9e5
40fc18:	8b f8                	mov    %eax,%edi
40fc1a:	39 75 08             	cmp    %esi,0x8(%ebp)
40fc1d:	74 11                	je     0x40fc30
40fc1f:	6a 07                	push   $0x7
40fc21:	8d 55 fc             	lea    -0x4(%ebp),%edx
40fc24:	59                   	pop    %ecx
40fc25:	e8 bb fd ff ff       	call   0x40f9e5
40fc2a:	8b 75 fc             	mov    -0x4(%ebp),%esi
40fc2d:	47                   	inc    %edi
40fc2e:	03 f8                	add    %eax,%edi
40fc30:	85 ff                	test   %edi,%edi
40fc32:	74 69                	je     0x40fc9d
40fc34:	83 c7 11             	add    $0x11,%edi
40fc37:	33 c9                	xor    %ecx,%ecx
40fc39:	6a 02                	push   $0x2
40fc3b:	5a                   	pop    %edx
40fc3c:	8b c7                	mov    %edi,%eax
40fc3e:	f7 e2                	mul    %edx
40fc40:	0f 90 c1             	seto   %cl
40fc43:	f7 d9                	neg    %ecx
40fc45:	0b c8                	or     %eax,%ecx
40fc47:	51                   	push   %ecx
40fc48:	e8 3f 39 00 00       	call   0x41358c
40fc4d:	89 03                	mov    %eax,(%ebx)
40fc4f:	59                   	pop    %ecx
40fc50:	85 c0                	test   %eax,%eax
40fc52:	74 49                	je     0x40fc9d
40fc54:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40fc57:	85 db                	test   %ebx,%ebx
40fc59:	74 15                	je     0x40fc70
40fc5b:	6a ff                	push   $0xffffffff
40fc5d:	53                   	push   %ebx
40fc5e:	57                   	push   %edi
40fc5f:	50                   	push   %eax
40fc60:	ff 15 e8 b2 41 00    	call   *0x41b2e8
40fc66:	53                   	push   %ebx
40fc67:	ff 15 24 b3 41 00    	call   *0x41b324
40fc6d:	83 c4 14             	add    $0x14,%esp
40fc70:	85 f6                	test   %esi,%esi
40fc72:	74 29                	je     0x40fc9d
40fc74:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40fc77:	6a ff                	push   $0xffffffff
40fc79:	68 00 40 40 00       	push   $0x404000
40fc7e:	57                   	push   %edi
40fc7f:	ff 33                	push   (%ebx)
40fc81:	ff 15 68 b3 41 00    	call   *0x41b368
40fc87:	6a ff                	push   $0xffffffff
40fc89:	56                   	push   %esi
40fc8a:	57                   	push   %edi
40fc8b:	ff 33                	push   (%ebx)
40fc8d:	ff 15 68 b3 41 00    	call   *0x41b368
40fc93:	56                   	push   %esi
40fc94:	ff 15 24 b3 41 00    	call   *0x41b324
40fc9a:	83 c4 24             	add    $0x24,%esp
40fc9d:	5f                   	pop    %edi
40fc9e:	5e                   	pop    %esi
40fc9f:	5b                   	pop    %ebx
40fca0:	c9                   	leave
40fca1:	c2 04 00             	ret    $0x4
40fca4:	8b ff                	mov    %edi,%edi
40fca6:	55                   	push   %ebp
40fca7:	8b ec                	mov    %esp,%ebp
40fca9:	83 ec 34             	sub    $0x34,%esp
40fcac:	a1 18 51 41 00       	mov    0x415118,%eax
40fcb1:	33 c5                	xor    %ebp,%eax
40fcb3:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fcb6:	53                   	push   %ebx
40fcb7:	56                   	push   %esi
40fcb8:	8b c1                	mov    %ecx,%eax
40fcba:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40fcbd:	57                   	push   %edi
40fcbe:	51                   	push   %ecx
40fcbf:	50                   	push   %eax
40fcc0:	89 45 d0             	mov    %eax,-0x30(%ebp)
40fcc3:	ff 15 f8 b1 41 00    	call   *0x41b1f8
40fcc9:	6a 00                	push   $0x0
40fccb:	8d 45 dc             	lea    -0x24(%ebp),%eax
40fcce:	50                   	push   %eax
40fccf:	6a 00                	push   $0x0
40fcd1:	6a 30                	push   $0x30
40fcd3:	ff 15 ac b2 41 00    	call   *0x41b2ac
40fcd9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40fcdc:	03 45 dc             	add    -0x24(%ebp),%eax
40fcdf:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40fce2:	2b 4d ec             	sub    -0x14(%ebp),%ecx
40fce5:	8b 5d e8             	mov    -0x18(%ebp),%ebx
40fce8:	8b 7d e0             	mov    -0x20(%ebp),%edi
40fceb:	99                   	cltd
40fcec:	2b c2                	sub    %edx,%eax
40fcee:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40fcf1:	8b f0                	mov    %eax,%esi
40fcf3:	8b c1                	mov    %ecx,%eax
40fcf5:	99                   	cltd
40fcf6:	2b c2                	sub    %edx,%eax
40fcf8:	d1 fe                	sar    $1,%esi
40fcfa:	d1 f8                	sar    $1,%eax
40fcfc:	2b f0                	sub    %eax,%esi
40fcfe:	8b 45 f8             	mov    -0x8(%ebp),%eax