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
45ee19:	89 50 68             	mov    %edx,0x68(%eax)
45ee1c:	8b 46 0c             	mov    0xc(%esi),%eax
45ee1f:	66 89 48 6c          	mov    %cx,0x6c(%eax)
45ee23:	8b 46 0c             	mov    0xc(%esi),%eax
45ee26:	59                   	pop    %ecx
45ee27:	6a 03                	push   $0x3
45ee29:	66 89 48 6e          	mov    %cx,0x6e(%eax)
45ee2d:	8b 46 08             	mov    0x8(%esi),%eax
45ee30:	59                   	pop    %ecx
45ee31:	89 50 0c             	mov    %edx,0xc(%eax)
45ee34:	8b 46 0c             	mov    0xc(%esi),%eax
45ee37:	c7 40 70 04 9d 4b 00 	movl   $0x4b9d04,0x70(%eax)
45ee3e:	8b 46 0c             	mov    0xc(%esi),%eax
45ee41:	89 50 74             	mov    %edx,0x74(%eax)
45ee44:	8b 46 0c             	mov    0xc(%esi),%eax
45ee47:	89 48 78             	mov    %ecx,0x78(%eax)
45ee4a:	8b 46 0c             	mov    0xc(%esi),%eax
45ee4d:	c7 40 7c 02 00 00 00 	movl   $0x2,0x7c(%eax)
45ee54:	8b 46 0c             	mov    0xc(%esi),%eax
45ee57:	c7 80 80 00 00 00 04 	movl   $0x4,0x80(%eax)
45ee5e:	00 00 00
45ee61:	8b 46 0c             	mov    0xc(%esi),%eax
45ee64:	89 90 84 00 00 00    	mov    %edx,0x84(%eax)
45ee6a:	33 c9                	xor    %ecx,%ecx
45ee6c:	8b 46 0c             	mov    0xc(%esi),%eax
45ee6f:	41                   	inc    %ecx
45ee70:	6a 13                	push   $0x13
45ee72:	66 89 88 88 00 00 00 	mov    %cx,0x88(%eax)
45ee79:	8b 46 0c             	mov    0xc(%esi),%eax
45ee7c:	59                   	pop    %ecx
45ee7d:	66 89 88 8a 00 00 00 	mov    %cx,0x8a(%eax)
45ee84:	8b 46 08             	mov    0x8(%esi),%eax
45ee87:	89 50 10             	mov    %edx,0x10(%eax)
45ee8a:	8b 46 04             	mov    0x4(%esi),%eax
45ee8d:	89 45 dc             	mov    %eax,-0x24(%ebp)
45ee90:	89 45 e4             	mov    %eax,-0x1c(%ebp)
45ee93:	33 c0                	xor    %eax,%eax
45ee95:	89 55 d8             	mov    %edx,-0x28(%ebp)
45ee98:	8b c8                	mov    %eax,%ecx
45ee9a:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
45ee9d:	6a 08                	push   $0x8
45ee9f:	58                   	pop    %eax
45eea0:	85 db                	test   %ebx,%ebx
45eea2:	0f 8e 2b 02 00 00    	jle    0x45f0d3
45eea8:	8b 45 08             	mov    0x8(%ebp),%eax
45eeab:	c1 e0 02             	shl    $0x2,%eax
45eeae:	89 45 f4             	mov    %eax,-0xc(%ebp)
45eeb1:	8b 45 08             	mov    0x8(%ebp),%eax
45eeb4:	6b ff 1c             	imul   $0x1c,%edi,%edi
45eeb7:	83 c0 fe             	add    $0xfffffffe,%eax
45eeba:	89 45 e0             	mov    %eax,-0x20(%ebp)
45eebd:	8b 45 dc             	mov    -0x24(%ebp),%eax
45eec0:	89 7d ec             	mov    %edi,-0x14(%ebp)
45eec3:	0f b7 1c 48          	movzwl (%eax,%ecx,2),%ebx
45eec7:	66 3b 5d d0          	cmp    -0x30(%ebp),%bx
45eecb:	89 5d 08             	mov    %ebx,0x8(%ebp)
45eece:	8b 5d fc             	mov    -0x4(%ebp),%ebx
45eed1:	75 14                	jne    0x45eee7
45eed3:	33 d2                	xor    %edx,%edx
45eed5:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
45eed9:	8d 51 01             	lea    0x1(%ecx),%edx
45eedc:	8d 14 50             	lea    (%eax,%edx,2),%edx
45eedf:	89 55 d8             	mov    %edx,-0x28(%ebp)
45eee2:	e9 dd 01 00 00       	jmp    0x45f0c4
45eee7:	6a 0a                	push   $0xa
45eee9:	5e                   	pop    %esi
45eeea:	66 39 75 08          	cmp    %si,0x8(%ebp)
45eeee:	8b 75 e8             	mov    -0x18(%ebp),%esi
45eef1:	74 0b                	je     0x45eefe
45eef3:	66 83 7d 08 00       	cmpw   $0x0,0x8(%ebp)
45eef8:	0f 85 c6 01 00 00    	jne    0x45f0c4
45eefe:	33 db                	xor    %ebx,%ebx
45ef00:	66 89 1c 48          	mov    %bx,(%eax,%ecx,2)
45ef04:	8b 46 0c             	mov    0xc(%esi),%eax
45ef07:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
45ef0a:	89 0c 07             	mov    %ecx,(%edi,%eax,1)
45ef0d:	8b 4d e0             	mov    -0x20(%ebp),%ecx
45ef10:	8d 41 01             	lea    0x1(%ecx),%eax
45ef13:	89 45 e0             	mov    %eax,-0x20(%ebp)
45ef16:	8b 46 0c             	mov    0xc(%esi),%eax
45ef19:	8b 5d e0             	mov    -0x20(%ebp),%ebx
45ef1c:	89 5c 07 08          	mov    %ebx,0x8(%edi,%eax,1)
45ef20:	8b 46 0c             	mov    0xc(%esi),%eax
45ef23:	8b 5d fc             	mov    -0x4(%ebp),%ebx
45ef26:	89 4c 07 0c          	mov    %ecx,0xc(%edi,%eax,1)
45ef2a:	33 c9                	xor    %ecx,%ecx
45ef2c:	8b 46 0c             	mov    0xc(%esi),%eax
45ef2f:	41                   	inc    %ecx
45ef30:	66 89 4c 07 18       	mov    %cx,0x18(%edi,%eax,1)
45ef35:	33 c0                	xor    %eax,%eax
45ef37:	8b c8                	mov    %eax,%ecx
45ef39:	89 45 08             	mov    %eax,0x8(%ebp)
45ef3c:	66 39 02             	cmp    %ax,(%edx)
45ef3f:	74 33                	je     0x45ef74
45ef41:	6a 3b                	push   $0x3b
45ef43:	8b c2                	mov    %edx,%eax
45ef45:	8b d9                	mov    %ecx,%ebx
45ef47:	33 ff                	xor    %edi,%edi
45ef49:	5e                   	pop    %esi
45ef4a:	66 39 30             	cmp    %si,(%eax)
45ef4d:	75 0e                	jne    0x45ef5d
45ef4f:	66 39 78 02          	cmp    %di,0x2(%eax)
45ef53:	74 03                	je     0x45ef58
45ef55:	43                   	inc    %ebx
45ef56:	eb 05                	jmp    0x45ef5d
45ef58:	33 ff                	xor    %edi,%edi
45ef5a:	66 89 38             	mov    %di,(%eax)
45ef5d:	41                   	inc    %ecx
45ef5e:	8d 04 4a             	lea    (%edx,%ecx,2),%eax
45ef61:	66 39 38             	cmp    %di,(%eax)
45ef64:	75 e4                	jne    0x45ef4a
45ef66:	8b 75 e8             	mov    -0x18(%ebp),%esi
45ef69:	33 c0                	xor    %eax,%eax
45ef6b:	8b 7d ec             	mov    -0x14(%ebp),%edi
45ef6e:	89 5d 08             	mov    %ebx,0x8(%ebp)
45ef71:	8b 5d fc             	mov    -0x4(%ebp),%ebx
45ef74:	89 45 f0             	mov    %eax,-0x10(%ebp)
45ef77:	33 c0                	xor    %eax,%eax
45ef79:	85 c9                	test   %ecx,%ecx
45ef7b:	7e 25                	jle    0x45efa2
45ef7d:	6a 3b                	push   $0x3b
45ef7f:	5b                   	pop    %ebx
45ef80:	66 39 1c 42          	cmp    %bx,(%edx,%eax,2)
45ef84:	8b 5d fc             	mov    -0x4(%ebp),%ebx
45ef87:	74 07                	je     0x45ef90
45ef89:	40                   	inc    %eax
45ef8a:	3b c1                	cmp    %ecx,%eax
45ef8c:	7c ef                	jl     0x45ef7d
45ef8e:	eb 12                	jmp    0x45efa2
45ef90:	33 c9                	xor    %ecx,%ecx
45ef92:	66 89 0c 42          	mov    %cx,(%edx,%eax,2)
45ef96:	40                   	inc    %eax
45ef97:	8d 04 42             	lea    (%edx,%eax,2),%eax
45ef9a:	66 39 08             	cmp    %cx,(%eax)
45ef9d:	74 03                	je     0x45efa2
45ef9f:	89 45 f0             	mov    %eax,-0x10(%ebp)
45efa2:	8b 4e 0c             	mov    0xc(%esi),%ecx
45efa5:	8d 41 1a             	lea    0x1a(%ecx),%eax
45efa8:	83 c1 10             	add    $0x10,%ecx
45efab:	03 c7                	add    %edi,%eax
45efad:	03 cf                	add    %edi,%ecx
45efaf:	50                   	push   %eax
45efb0:	51                   	push   %ecx
45efb1:	52                   	push   %edx
45efb2:	e8 f8 f1 ff ff       	call   0x45e1af
45efb7:	8b 4e 0c             	mov    0xc(%esi),%ecx
45efba:	8b 45 08             	mov    0x8(%ebp),%eax
45efbd:	89 44 0f 14          	mov    %eax,0x14(%edi,%ecx,1)
45efc1:	33 c9                	xor    %ecx,%ecx
45efc3:	85 c0                	test   %eax,%eax
45efc5:	0f 84 c5 00 00 00    	je     0x45f090
45efcb:	6a 08                	push   $0x8
45efcd:	5a                   	pop    %edx
45efce:	f7 e2                	mul    %edx
45efd0:	0f 90 c1             	seto   %cl
45efd3:	f7 d9                	neg    %ecx
45efd5:	0b c8                	or     %eax,%ecx
45efd7:	51                   	push   %ecx
45efd8:	e8 19 20 fc ff       	call   0x420ff6
45efdd:	8b 55 f4             	mov    -0xc(%ebp),%edx
45efe0:	59                   	pop    %ecx
45efe1:	8b 4e 08             	mov    0x8(%esi),%ecx
45efe4:	89 04 0a             	mov    %eax,(%edx,%ecx,1)
45efe7:	8b 45 f0             	mov    -0x10(%ebp),%eax
45efea:	85 c0                	test   %eax,%eax
45efec:	0f 84 8f 00 00 00    	je     0x45f081
45eff2:	33 c9                	xor    %ecx,%ecx
45eff4:	33 db                	xor    %ebx,%ebx
45eff6:	66 39 18             	cmp    %bx,(%eax)
45eff9:	8b d0                	mov    %eax,%edx
45effb:	8b 5d fc             	mov    -0x4(%ebp),%ebx
45effe:	89 4d 08             	mov    %ecx,0x8(%ebp)
45f001:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
45f004:	74 54                	je     0x45f05a
45f006:	8b d8                	mov    %eax,%ebx