45ea9b:	89 47 1c             	mov    %eax,0x1c(%edi)
45ea9e:	5e                   	pop    %esi
45ea9f:	5b                   	pop    %ebx
45eaa0:	5f                   	pop    %edi
45eaa1:	8b e5                	mov    %ebp,%esp
45eaa3:	5d                   	pop    %ebp
45eaa4:	c3                   	ret
45eaa5:	55                   	push   %ebp
45eaa6:	8b ec                	mov    %esp,%ebp
45eaa8:	8b 45 08             	mov    0x8(%ebp),%eax
45eaab:	8b 48 18             	mov    0x18(%eax),%ecx
45eaae:	85 c9                	test   %ecx,%ecx
45eab0:	74 0d                	je     0x45eabf
45eab2:	ff 75 10             	push   0x10(%ebp)
45eab5:	8b 01                	mov    (%ecx),%eax
45eab7:	ff 75 0c             	push   0xc(%ebp)
45eaba:	51                   	push   %ecx
45eabb:	ff 10                	call   *(%eax)
45eabd:	eb 05                	jmp    0x45eac4
45eabf:	b8 01 40 00 80       	mov    $0x80004001,%eax
45eac4:	5d                   	pop    %ebp
45eac5:	c2 0c 00             	ret    $0xc
45eac8:	55                   	push   %ebp
45eac9:	8b ec                	mov    %esp,%ebp
45eacb:	56                   	push   %esi
45eacc:	8b 75 08             	mov    0x8(%ebp),%esi
45eacf:	57                   	push   %edi
45ead0:	8b 4e 18             	mov    0x18(%esi),%ecx
45ead3:	8d 7e 20             	lea    0x20(%esi),%edi
45ead6:	85 c9                	test   %ecx,%ecx
45ead8:	74 0a                	je     0x45eae4
45eada:	8b 01                	mov    (%ecx),%eax
45eadc:	51                   	push   %ecx
45eadd:	ff 50 08             	call   *0x8(%eax)
45eae0:	89 07                	mov    %eax,(%edi)
45eae2:	eb 07                	jmp    0x45eaeb
45eae4:	57                   	push   %edi
45eae5:	ff 15 50 f3 48 00    	call   *0x48f350
45eaeb:	8b 07                	mov    (%edi),%eax
45eaed:	85 c0                	test   %eax,%eax
45eaef:	75 10                	jne    0x45eb01
45eaf1:	8b ce                	mov    %esi,%ecx
45eaf3:	e8 2a f4 ff ff       	call   0x45df22
45eaf8:	56                   	push   %esi
45eaf9:	e8 6e 25 fc ff       	call   0x42106c
45eafe:	59                   	pop    %ecx
45eaff:	33 c0                	xor    %eax,%eax
45eb01:	5f                   	pop    %edi
45eb02:	5e                   	pop    %esi
45eb03:	5d                   	pop    %ebp
45eb04:	c2 04 00             	ret    $0x4
45eb07:	55                   	push   %ebp
45eb08:	8b ec                	mov    %esp,%ebp
45eb0a:	83 ec 30             	sub    $0x30,%esp
45eb0d:	53                   	push   %ebx
45eb0e:	56                   	push   %esi
45eb0f:	57                   	push   %edi
45eb10:	8b 7d 08             	mov    0x8(%ebp),%edi
45eb13:	8b f1                	mov    %ecx,%esi
45eb15:	57                   	push   %edi
45eb16:	89 75 e8             	mov    %esi,-0x18(%ebp)
45eb19:	ff 15 b4 f1 48 00    	call   *0x48f1b4
45eb1f:	89 45 f4             	mov    %eax,-0xc(%ebp)
45eb22:	33 c9                	xor    %ecx,%ecx
45eb24:	6a 02                	push   $0x2
45eb26:	83 c0 06             	add    $0x6,%eax
45eb29:	5b                   	pop    %ebx
45eb2a:	f7 e3                	mul    %ebx
45eb2c:	0f 90 c1             	seto   %cl
45eb2f:	f7 d9                	neg    %ecx
45eb31:	0b c8                	or     %eax,%ecx
45eb33:	51                   	push   %ecx
45eb34:	e8 bd 24 fc ff       	call   0x420ff6
45eb39:	59                   	pop    %ecx
45eb3a:	33 c9                	xor    %ecx,%ecx
45eb3c:	89 46 04             	mov    %eax,0x4(%esi)
45eb3f:	8b c3                	mov    %ebx,%eax
45eb41:	8b d9                	mov    %ecx,%ebx
45eb43:	89 45 f8             	mov    %eax,-0x8(%ebp)
45eb46:	89 5d fc             	mov    %ebx,-0x4(%ebp)
45eb49:	c7 45 d0 7c 00 00 00 	movl   $0x7c,-0x30(%ebp)
45eb50:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
45eb53:	0f 8e 32 01 00 00    	jle    0x45ec8b
45eb59:	6a 20                	push   $0x20
45eb5b:	5a                   	pop    %edx
45eb5c:	89 55 f0             	mov    %edx,-0x10(%ebp)
45eb5f:	c7 45 ec 28 00 00 00 	movl   $0x28,-0x14(%ebp)
45eb66:	eb 01                	jmp    0x45eb69
45eb68:	41                   	inc    %ecx
45eb69:	66 39 14 4f          	cmp    %dx,(%edi,%ecx,2)
45eb6d:	74 f9                	je     0x45eb68
45eb6f:	0f b7 14 4f          	movzwl (%edi,%ecx,2),%edx
45eb73:	66 3b 55 f0          	cmp    -0x10(%ebp),%dx
45eb77:	74 18                	je     0x45eb91
45eb79:	8b 46 04             	mov    0x4(%esi),%eax
45eb7c:	41                   	inc    %ecx
45eb7d:	6a 20                	push   $0x20
45eb7f:	66 89 14 58          	mov    %dx,(%eax,%ebx,2)
45eb83:	43                   	inc    %ebx
45eb84:	0f b7 14 4f          	movzwl (%edi,%ecx,2),%edx
45eb88:	58                   	pop    %eax
45eb89:	66 3b d0             	cmp    %ax,%dx
45eb8c:	75 eb                	jne    0x45eb79
45eb8e:	8b 45 f8             	mov    -0x8(%ebp),%eax
45eb91:	40                   	inc    %eax
45eb92:	89 45 f8             	mov    %eax,-0x8(%ebp)
45eb95:	8b 46 04             	mov    0x4(%esi),%eax
45eb98:	6a 7c                	push   $0x7c
45eb9a:	5a                   	pop    %edx
45eb9b:	6a 20                	push   $0x20
45eb9d:	66 89 14 58          	mov    %dx,(%eax,%ebx,2)
45eba1:	43                   	inc    %ebx
45eba2:	58                   	pop    %eax
45eba3:	eb 01                	jmp    0x45eba6
45eba5:	41                   	inc    %ecx
45eba6:	66 39 04 4f          	cmp    %ax,(%edi,%ecx,2)
45ebaa:	74 f9                	je     0x45eba5
45ebac:	eb 12                	jmp    0x45ebc0
45ebae:	66 3b 55 ec          	cmp    -0x14(%ebp),%dx
45ebb2:	74 15                	je     0x45ebc9
45ebb4:	8b 46 04             	mov    0x4(%esi),%eax
45ebb7:	41                   	inc    %ecx
45ebb8:	6a 20                	push   $0x20
45ebba:	66 89 14 58          	mov    %dx,(%eax,%ebx,2)
45ebbe:	43                   	inc    %ebx
45ebbf:	58                   	pop    %eax
45ebc0:	0f b7 14 4f          	movzwl (%edi,%ecx,2),%edx
45ebc4:	66 3b d0             	cmp    %ax,%dx
45ebc7:	75 e5                	jne    0x45ebae
45ebc9:	8b 46 04             	mov    0x4(%esi),%eax
45ebcc:	6a 3b                	push   $0x3b
45ebce:	5a                   	pop    %edx
45ebcf:	6a 20                	push   $0x20
45ebd1:	66 89 14 58          	mov    %dx,(%eax,%ebx,2)
45ebd5:	43                   	inc    %ebx
45ebd6:	58                   	pop    %eax
45ebd7:	eb 01                	jmp    0x45ebda
45ebd9:	41                   	inc    %ecx
45ebda:	66 39 04 4f          	cmp    %ax,(%edi,%ecx,2)
45ebde:	74 f9                	je     0x45ebd9
45ebe0:	8b 55 ec             	mov    -0x14(%ebp),%edx
45ebe3:	66 39 14 4f          	cmp    %dx,(%edi,%ecx,2)
45ebe7:	75 01                	jne    0x45ebea
45ebe9:	41                   	inc    %ecx
45ebea:	66 39 04 4f          	cmp    %ax,(%edi,%ecx,2)
45ebee:	74 f9                	je     0x45ebe9
45ebf0:	33 d2                	xor    %edx,%edx
45ebf2:	42                   	inc    %edx
45ebf3:	eb 04                	jmp    0x45ebf9
45ebf5:	58                   	pop    %eax
45ebf6:	eb 01                	jmp    0x45ebf9
45ebf8:	41                   	inc    %ecx
45ebf9:	66 39 04 4f          	cmp    %ax,(%edi,%ecx,2)
45ebfd:	74 f9                	je     0x45ebf8
45ebff:	eb 2b                	jmp    0x45ec2c
45ec01:	66 3b 45 f0          	cmp    -0x10(%ebp),%ax
45ec05:	75 0a                	jne    0x45ec11
45ec07:	6a 20                	push   $0x20
45ec09:	58                   	pop    %eax
45ec0a:	41                   	inc    %ecx
45ec0b:	66 39 04 4f          	cmp    %ax,(%edi,%ecx,2)
45ec0f:	74 f9                	je     0x45ec0a
45ec11:	0f b7 04 4f          	movzwl (%edi,%ecx,2),%eax
45ec15:	89 45 d4             	mov    %eax,-0x2c(%ebp)
45ec18:	83 f8 29             	cmp    $0x29,%eax
45ec1b:	74 20                	je     0x45ec3d
45ec1d:	8b 46 04             	mov    0x4(%esi),%eax
45ec20:	41                   	inc    %ecx
45ec21:	8b 7d d4             	mov    -0x2c(%ebp),%edi
45ec24:	66 89 3c 58          	mov    %di,(%eax,%ebx,2)
45ec28:	43                   	inc    %ebx
45ec29:	8b 7d 08             	mov    0x8(%ebp),%edi
45ec2c:	0f b7 04 4f          	movzwl (%edi,%ecx,2),%eax
45ec30:	6a 3b                	push   $0x3b
45ec32:	5f                   	pop    %edi
45ec33:	66 3b c7             	cmp    %di,%ax
45ec36:	8b 7d 08             	mov    0x8(%ebp),%edi
45ec39:	75 c6                	jne    0x45ec01
45ec3b:	eb 05                	jmp    0x45ec42
45ec3d:	33 c0                	xor    %eax,%eax
45ec3f:	41                   	inc    %ecx
45ec40:	8b d0                	mov    %eax,%edx
45ec42:	6a 20                	push   $0x20
45ec44:	58                   	pop    %eax
45ec45:	eb 01                	jmp    0x45ec48
45ec47:	41                   	inc    %ecx
45ec48:	66 39 04 4f          	cmp    %ax,(%edi,%ecx,2)
45ec4c:	74 f9                	je     0x45ec47
45ec4e:	8b 46 04             	mov    0x4(%esi),%eax
45ec51:	85 d2                	test   %edx,%edx
45ec53:	75 04                	jne    0x45ec59
45ec55:	6a 0a                	push   $0xa
45ec57:	eb 02                	jmp    0x45ec5b
45ec59:	6a 3b                	push   $0x3b
45ec5b:	5f                   	pop    %edi
45ec5c:	66 89 3c 58          	mov    %di,(%eax,%ebx,2)
45ec60:	43                   	inc    %ebx
45ec61:	8b 7d 08             	mov    0x8(%ebp),%edi
45ec64:	6a 3b                	push   $0x3b
45ec66:	58                   	pop    %eax
45ec67:	66 39 04 4f          	cmp    %ax,(%edi,%ecx,2)
45ec6b:	75 01                	jne    0x45ec6e
45ec6d:	41                   	inc    %ecx
45ec6e:	33 c0                	xor    %eax,%eax
45ec70:	40                   	inc    %eax
45ec71:	6a 20                	push   $0x20
45ec73:	3b d0                	cmp    %eax,%edx
45ec75:	0f 84 7a ff ff ff    	je     0x45ebf5
45ec7b:	8b 45 f8             	mov    -0x8(%ebp),%eax
45ec7e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
45ec81:	5a                   	pop    %edx
45ec82:	3b 4d f4             	cmp    -0xc(%ebp),%ecx
45ec85:	0f 8c de fe ff ff    	jl     0x45eb69
45ec8b:	33 c9                	xor    %ecx,%ecx
45ec8d:	6a 03                	push   $0x3
45ec8f:	5a                   	pop    %edx
45ec90:	39 4e 24             	cmp    %ecx,0x24(%esi)
45ec93:	74 05                	je     0x45ec9a
45ec95:	03 c2                	add    %edx,%eax
45ec97:	89 45 f8             	mov    %eax,-0x8(%ebp)
45ec9a:	33 c9                	xor    %ecx,%ecx
45ec9c:	6a 04                	push   $0x4
45ec9e:	5f                   	pop    %edi
45ec9f:	f7 e7                	mul    %edi
45eca1:	0f 90 c1             	seto   %cl
45eca4:	f7 d9                	neg    %ecx
45eca6:	0b c8                	or     %eax,%ecx
45eca8:	51                   	push   %ecx
45eca9:	e8 48 23 fc ff       	call   0x420ff6
45ecae:	89 46 08             	mov    %eax,0x8(%esi)
45ecb1:	33 c9                	xor    %ecx,%ecx
45ecb3:	8b 45 f8             	mov    -0x8(%ebp),%eax
45ecb6:	6a 1c                	push   $0x1c
45ecb8:	5a                   	pop    %edx
45ecb9:	f7 e2                	mul    %edx
45ecbb:	0f 90 c1             	seto   %cl
45ecbe:	f7 d9                	neg    %ecx
45ecc0:	0b c8                	or     %eax,%ecx
45ecc2:	51                   	push   %ecx
45ecc3:	e8 2e 23 fc ff       	call   0x420ff6
45ecc8:	89 46 0c             	mov    %eax,0xc(%esi)
45eccb:	33 d2                	xor    %edx,%edx
45eccd:	59                   	pop    %ecx
45ecce:	59                   	pop    %ecx
45eccf:	c7 00 b0 9c 4b 00    	movl   $0x4b9cb0,(%eax)
45ecd5:	33 c9                	xor    %ecx,%ecx
45ecd7:	8b 46 0c             	mov    0xc(%esi),%eax
45ecda:	41                   	inc    %ecx
45ecdb:	6a 02                	push   $0x2
45ecdd:	89 50 04             	mov    %edx,0x4(%eax)
45ece0:	8b 46 0c             	mov    0xc(%esi),%eax
45ece3:	83 48 08 ff          	orl    $0xffffffff,0x8(%eax)
45ece7:	8b 46 0c             	mov    0xc(%esi),%eax
45ecea:	83 48 0c ff          	orl    $0xffffffff,0xc(%eax)
45ecee:	8b 46 0c             	mov    0xc(%esi),%eax
45ecf1:	89 78 10             	mov    %edi,0x10(%eax)
45ecf4:	8b 46 0c             	mov    0xc(%esi),%eax
45ecf7:	89 50 14             	mov    %edx,0x14(%eax)
45ecfa:	8b 46 0c             	mov    0xc(%esi),%eax
45ecfd:	66 89 48 18          	mov    %cx,0x18(%eax)
45ed01:	33 c9                	xor    %ecx,%ecx
45ed03:	8b 46 0c             	mov    0xc(%esi),%eax
45ed06:	66 89 48 1a          	mov    %cx,0x1a(%eax)
45ed0a:	8b 46 0c             	mov    0xc(%esi),%eax
45ed0d:	59                   	pop    %ecx
45ed0e:	6a 13                	push   $0x13
45ed10:	89 4d 08             	mov    %ecx,0x8(%ebp)
45ed13:	89 50 1c             	mov    %edx,0x1c(%eax)
45ed16:	8b 46 0c             	mov    0xc(%esi),%eax
45ed19:	89 50 20             	mov    %edx,0x20(%eax)
45ed1c:	8b 46 0c             	mov    0xc(%esi),%eax
45ed1f:	89 50 24             	mov    %edx,0x24(%eax)
45ed22:	8b 46 0c             	mov    0xc(%esi),%eax
45ed25:	83 48 28 ff          	orl    $0xffffffff,0x28(%eax)
45ed29:	8b 46 0c             	mov    0xc(%esi),%eax
45ed2c:	89 78 2c             	mov    %edi,0x2c(%eax)
45ed2f:	8b 46 0c             	mov    0xc(%esi),%eax
45ed32:	5f                   	pop    %edi
45ed33:	89 50 30             	mov    %edx,0x30(%eax)
45ed36:	8b 46 0c             	mov    0xc(%esi),%eax
45ed39:	66 89 48 34          	mov    %cx,0x34(%eax)
45ed3d:	8b 46 0c             	mov    0xc(%esi),%eax
45ed40:	66 89 78 36          	mov    %di,0x36(%eax)
45ed44:	8b f9                	mov    %ecx,%edi
45ed46:	8b 46 08             	mov    0x8(%esi),%eax
45ed49:	89 10                	mov    %edx,(%eax)
45ed4b:	8b 46 08             	mov    0x8(%esi),%eax
45ed4e:	89 50 04             	mov    %edx,0x4(%eax)
45ed51:	39 56 24             	cmp    %edx,0x24(%esi)
45ed54:	0f 84 30 01 00 00    	je     0x45ee8a
45ed5a:	8b 46 0c             	mov    0xc(%esi),%eax
45ed5d:	6a 05                	push   $0x5
45ed5f:	5f                   	pop    %edi
45ed60:	6a 03                	push   $0x3
45ed62:	c7 40 38 d4 9c 4b 00 	movl   $0x4b9cd4,0x38(%eax)
45ed69:	8b 46 0c             	mov    0xc(%esi),%eax
45ed6c:	89 7d 08             	mov    %edi,0x8(%ebp)
45ed6f:	c7 40 40 01 00 00 00 	movl   $0x1,0x40(%eax)
45ed76:	8b 46 0c             	mov    0xc(%esi),%eax
45ed79:	89 50 44             	mov    %edx,0x44(%eax)
45ed7c:	8b 46 0c             	mov    0xc(%esi),%eax
45ed7f:	c7 40 48 04 00 00 00 	movl   $0x4,0x48(%eax)
45ed86:	8b 46 0c             	mov    0xc(%esi),%eax
45ed89:	89 48 4c             	mov    %ecx,0x4c(%eax)
45ed8c:	33 c9                	xor    %ecx,%ecx
45ed8e:	8b 46 0c             	mov    0xc(%esi),%eax
45ed91:	41                   	inc    %ecx
45ed92:	66 89 48 50          	mov    %cx,0x50(%eax)
45ed96:	8b 46 0c             	mov    0xc(%esi),%eax
45ed99:	59                   	pop    %ecx
45ed9a:	6a 10                	push   $0x10
45ed9c:	66 89 48 52          	mov    %cx,0x52(%eax)
45eda0:	e8 51 22 fc ff       	call   0x420ff6
45eda5:	59                   	pop    %ecx
45eda6:	8b 4e 08             	mov    0x8(%esi),%ecx
45eda9:	33 d2                	xor    %edx,%edx
45edab:	6a 48                	push   $0x48
45edad:	89 41 08             	mov    %eax,0x8(%ecx)
45edb0:	8b 46 08             	mov    0x8(%esi),%eax
45edb3:	59                   	pop    %ecx
45edb4:	6a 13                	push   $0x13
45edb6:	8b 40 08             	mov    0x8(%eax),%eax
45edb9:	66 89 48 04          	mov    %cx,0x4(%eax)
45edbd:	b9 13 40 00 00       	mov    $0x4013,%ecx
45edc2:	8b 46 08             	mov    0x8(%esi),%eax
45edc5:	8b 40 08             	mov    0x8(%eax),%eax
45edc8:	66 89 48 0c          	mov    %cx,0xc(%eax)
45edcc:	8b 46 08             	mov    0x8(%esi),%eax
45edcf:	8b 40 08             	mov    0x8(%eax),%eax
45edd2:	89 10                	mov    %edx,(%eax)
45edd4:	8b 46 08             	mov    0x8(%esi),%eax
45edd7:	8b 40 08             	mov    0x8(%eax),%eax
45edda:	89 50 08             	mov    %edx,0x8(%eax)
45eddd:	8b 46 08             	mov    0x8(%esi),%eax
45ede0:	8b 4e 0c             	mov    0xc(%esi),%ecx
45ede3:	8b 40 08             	mov    0x8(%eax),%eax
45ede6:	89 41 3c             	mov    %eax,0x3c(%ecx)
45ede9:	33 c9                	xor    %ecx,%ecx
45edeb:	8b 46 0c             	mov    0xc(%esi),%eax
45edee:	41                   	inc    %ecx
45edef:	c7 40 54 f4 9c 4b 00 	movl   $0x4b9cf4,0x54(%eax)
45edf6:	8b 46 0c             	mov    0xc(%esi),%eax
45edf9:	89 50 58             	mov    %edx,0x58(%eax)
45edfc:	8b 46 0c             	mov    0xc(%esi),%eax
45edff:	c7 40 5c 02 00 00 00 	movl   $0x2,0x5c(%eax)
45ee06:	8b 46 0c             	mov    0xc(%esi),%eax
45ee09:	89 48 60             	mov    %ecx,0x60(%eax)
45ee0c:	8b 46 0c             	mov    0xc(%esi),%eax
45ee0f:	c7 40 64 04 00 00 00 	movl   $0x4,0x64(%eax)
45ee16:	8b 46 0c             	mov    0xc(%esi),%eax