410c38:	89 5d f4             	mov    %ebx,-0xc(%ebp)
410c3b:	89 5d d8             	mov    %ebx,-0x28(%ebp)
410c3e:	89 45 b8             	mov    %eax,-0x48(%ebp)
410c41:	89 7d f0             	mov    %edi,-0x10(%ebp)
410c44:	85 c9                	test   %ecx,%ecx
410c46:	0f 84 98 01 00 00    	je     0x410de4
410c4c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
410c4f:	0f b7 01             	movzwl (%ecx),%eax
410c52:	83 f8 22             	cmp    $0x22,%eax
410c55:	0f 85 8a df 00 00    	jne    0x41ebe5
410c5b:	83 c1 02             	add    $0x2,%ecx
410c5e:	8b f0                	mov    %eax,%esi
410c60:	89 4d fc             	mov    %ecx,-0x4(%ebp)
410c63:	8b c1                	mov    %ecx,%eax
410c65:	89 75 e4             	mov    %esi,-0x1c(%ebp)
410c68:	85 c0                	test   %eax,%eax
410c6a:	0f 84 71 01 00 00    	je     0x410de1
410c70:	0f b7 11             	movzwl (%ecx),%edx
410c73:	66 85 d2             	test   %dx,%dx
410c76:	0f 84 ce 00 00 00    	je     0x410d4a
410c7c:	8d 64 24 00          	lea    0x0(%esp),%esp
410c80:	66 83 fa 20          	cmp    $0x20,%dx
410c84:	0f 86 78 05 00 00    	jbe    0x411202
410c8a:	66 39 31             	cmp    %si,(%ecx)
410c8d:	0f 84 b7 00 00 00    	je     0x410d4a
410c93:	6a 08                	push   $0x8
410c95:	68 38 24 40 00       	push   $0x402438
410c9a:	51                   	push   %ecx
410c9b:	ff 15 28 a4 44 00    	call   *0x44a428
410ca1:	83 c4 0c             	add    $0xc,%esp
410ca4:	85 c0                	test   %eax,%eax
410ca6:	0f 84 73 08 00 00    	je     0x41151f
410cac:	6a 07                	push   $0x7
410cae:	68 58 24 40 00       	push   $0x402458
410cb3:	ff 75 fc             	push   -0x4(%ebp)
410cb6:	ff 15 28 a4 44 00    	call   *0x44a428
410cbc:	83 c4 0c             	add    $0xc,%esp
410cbf:	85 c0                	test   %eax,%eax
410cc1:	0f 84 2e df 00 00    	je     0x41ebf5
410cc7:	6a 04                	push   $0x4
410cc9:	68 4c 24 40 00       	push   $0x40244c
410cce:	ff 75 fc             	push   -0x4(%ebp)
410cd1:	ff 15 28 a4 44 00    	call   *0x44a428
410cd7:	83 c4 0c             	add    $0xc,%esp
410cda:	85 c0                	test   %eax,%eax
410cdc:	0f 84 20 08 00 00    	je     0x411502
410ce2:	6a 07                	push   $0x7
410ce4:	68 68 24 40 00       	push   $0x402468
410ce9:	ff 75 fc             	push   -0x4(%ebp)
410cec:	ff 15 28 a4 44 00    	call   *0x44a428
410cf2:	83 c4 0c             	add    $0xc,%esp
410cf5:	85 c0                	test   %eax,%eax
410cf7:	0f 85 34 04 00 00    	jne    0x411131
410cfd:	8b 5d fc             	mov    -0x4(%ebp),%ebx
410d00:	83 c3 0e             	add    $0xe,%ebx
410d03:	8b cb                	mov    %ebx,%ecx
410d05:	89 5d ac             	mov    %ebx,-0x54(%ebp)
410d08:	89 4d fc             	mov    %ecx,-0x4(%ebp)
410d0b:	0f b7 01             	movzwl (%ecx),%eax
410d0e:	66 85 c0             	test   %ax,%ax
410d11:	0f 84 d8 03 00 00    	je     0x4110ef
410d17:	8b f3                	mov    %ebx,%esi
410d19:	8b d0                	mov    %eax,%edx
410d1b:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
410d1e:	8b ff                	mov    %edi,%edi
410d20:	66 3b d3             	cmp    %bx,%dx
410d23:	0f 84 c3 03 00 00    	je     0x4110ec
410d29:	66 83 fa 20          	cmp    $0x20,%dx
410d2d:	0f 84 af 03 00 00    	je     0x4110e2
410d33:	8d 4e 02             	lea    0x2(%esi),%ecx
410d36:	89 4d fc             	mov    %ecx,-0x4(%ebp)
410d39:	8b f1                	mov    %ecx,%esi
410d3b:	0f b7 01             	movzwl (%ecx),%eax
410d3e:	8b d0                	mov    %eax,%edx
410d40:	66 85 c0             	test   %ax,%ax
410d43:	75 db                	jne    0x410d20
410d45:	e9 a2 03 00 00       	jmp    0x4110ec
410d4a:	83 fb 01             	cmp    $0x1,%ebx
410d4d:	0f 8e 8e 00 00 00    	jle    0x410de1
410d53:	8b 75 ec             	mov    -0x14(%ebp),%esi
410d56:	8b 0d 40 67 43 00    	mov    0x436740,%ecx
410d5c:	03 f3                	add    %ebx,%esi
410d5e:	8d 14 75 02 00 00 00 	lea    0x2(,%esi,2),%edx
410d65:	e8 b6 cf ff ff       	call   0x40dd20
410d6a:	8b 0d 3c 67 43 00    	mov    0x43673c,%ecx
410d70:	8d 14 b5 04 00 00 00 	lea    0x4(,%esi,4),%edx
410d77:	a3 40 67 43 00       	mov    %eax,0x436740
410d7c:	e8 9f cf ff ff       	call   0x40dd20
410d81:	8b d0                	mov    %eax,%edx
410d83:	a1 40 67 43 00       	mov    0x436740,%eax
410d88:	89 15 3c 67 43 00    	mov    %edx,0x43673c
410d8e:	85 c0                	test   %eax,%eax
410d90:	0f 84 91 de 00 00    	je     0x41ec27
410d96:	85 d2                	test   %edx,%edx
410d98:	0f 84 89 de 00 00    	je     0x41ec27
410d9e:	8b 75 ec             	mov    -0x14(%ebp),%esi
410da1:	b9 01 00 00 00       	mov    $0x1,%ecx
410da6:	8b 7d e8             	mov    -0x18(%ebp),%edi
410da9:	8d 14 b2             	lea    (%edx,%esi,4),%edx
410dac:	83 c2 04             	add    $0x4,%edx
410daf:	46                   	inc    %esi
410db0:	8d 34 70             	lea    (%eax,%esi,2),%esi
410db3:	66 8b 47 44          	mov    0x44(%edi),%ax
410db7:	8d 76 02             	lea    0x2(%esi),%esi
410dba:	66 03 c1             	add    %cx,%ax
410dbd:	8d 52 04             	lea    0x4(%edx),%edx
410dc0:	66 89 46 fe          	mov    %ax,-0x2(%esi)
410dc4:	41                   	inc    %ecx
410dc5:	c7 42 fc 00 00 00 00 	movl   $0x0,-0x4(%edx)
410dcc:	3b cb                	cmp    %ebx,%ecx
410dce:	7c e3                	jl     0x410db3
410dd0:	03 4d ec             	add    -0x14(%ebp),%ecx
410dd3:	33 d2                	xor    %edx,%edx
410dd5:	a1 40 67 43 00       	mov    0x436740,%eax
410dda:	8b 7d f0             	mov    -0x10(%ebp),%edi
410ddd:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
410de1:	8b 75 e8             	mov    -0x18(%ebp),%esi
410de4:	8b 76 3c             	mov    0x3c(%esi),%esi
410de7:	8b c7                	mov    %edi,%eax
410de9:	f7 d8                	neg    %eax
410deb:	89 75 f8             	mov    %esi,-0x8(%ebp)
410dee:	1b c0                	sbb    %eax,%eax
410df0:	83 e0 05             	and    $0x5,%eax
410df3:	83 c0 22             	add    $0x22,%eax
410df6:	f7 df                	neg    %edi
410df8:	0f b7 d8             	movzwl %ax,%ebx
410dfb:	1b ff                	sbb    %edi,%edi
410dfd:	89 5d a4             	mov    %ebx,-0x5c(%ebp)
410e00:	83 e7 39             	and    $0x39,%edi
410e03:	83 c7 27             	add    $0x27,%edi
410e06:	0f b7 ff             	movzwl %di,%edi
410e09:	89 7d a0             	mov    %edi,-0x60(%ebp)
410e0c:	85 f6                	test   %esi,%esi
410e0e:	0f 84 01 06 00 00    	je     0x411415
410e14:	0f b7 06             	movzwl (%esi),%eax
410e17:	8b d0                	mov    %eax,%edx
410e19:	66 3b c7             	cmp    %di,%ax
410e1c:	74 09                	je     0x410e27
410e1e:	66 3b c3             	cmp    %bx,%ax
410e21:	0f 85 ee 05 00 00    	jne    0x411415
410e27:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
410e2e:	66 85 d2             	test   %dx,%dx
410e31:	0f 84 77 02 00 00    	je     0x4110ae
410e37:	eb 07                	jmp    0x410e40
410e39:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
410e40:	80 3d 44 67 43 00 00 	cmpb   $0x0,0x436744
410e47:	0f 85 61 02 00 00    	jne    0x4110ae
410e4d:	83 3d 38 67 43 00 00 	cmpl   $0x0,0x436738
410e54:	0f 85 ee dd 00 00    	jne    0x41ec48
410e5a:	83 3d 9c 25 43 00 00 	cmpl   $0x0,0x43259c
410e61:	0f 85 04 de 00 00    	jne    0x41ec6b
410e67:	8b 45 c0             	mov    -0x40(%ebp),%eax
410e6a:	8b d6                	mov    %esi,%edx
410e6c:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
410e73:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
410e7a:	89 45 ac             	mov    %eax,-0x54(%ebp)
410e7d:	8d 4a 02             	lea    0x2(%edx),%ecx
410e80:	66 8b 02             	mov    (%edx),%ax
410e83:	83 c2 02             	add    $0x2,%edx
410e86:	66 85 c0             	test   %ax,%ax
410e89:	75 f5                	jne    0x410e80
410e8b:	0f b7 06             	movzwl (%esi),%eax
410e8e:	2b d1                	sub    %ecx,%edx
410e90:	d1 fa                	sar    $1,%edx
410e92:	89 55 cc             	mov    %edx,-0x34(%ebp)
410e95:	66 3b c7             	cmp    %di,%ax
410e98:	0f 84 21 04 00 00    	je     0x4112bf
410e9e:	66 3b c3             	cmp    %bx,%ax
410ea1:	0f 85 86 05 00 00    	jne    0x41142d
410ea7:	83 fa 01             	cmp    $0x1,%edx
410eaa:	0f 8e 7d 05 00 00    	jle    0x41142d
410eb0:	66 39 5c 56 fe       	cmp    %bx,-0x2(%esi,%edx,2)
410eb5:	0f 85 72 05 00 00    	jne    0x41142d
410ebb:	b8 0a 00 00 00       	mov    $0xa,%eax
410ec0:	66 89 44 56 fe       	mov    %ax,-0x2(%esi,%edx,2)
410ec5:	83 c6 02             	add    $0x2,%esi
410ec8:	83 ea 02             	sub    $0x2,%edx
410ecb:	89 75 f8             	mov    %esi,-0x8(%ebp)
410ece:	89 55 cc             	mov    %edx,-0x34(%ebp)
410ed1:	89 75 fc             	mov    %esi,-0x4(%ebp)
410ed4:	8d 42 01             	lea    0x1(%edx),%eax
410ed7:	8d 04 46             	lea    (%esi,%eax,2),%eax
410eda:	89 45 c4             	mov    %eax,-0x3c(%ebp)
410edd:	39 45 fc             	cmp    %eax,-0x4(%ebp)
410ee0:	0f 83 a4 01 00 00    	jae    0x41108a
410ee6:	eb 08                	jmp    0x410ef0
410ee8:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
410eef:	90                   	nop
410ef0:	80 3d 44 67 43 00 00 	cmpb   $0x0,0x436744
410ef7:	0f 85 8d 01 00 00    	jne    0x41108a
410efd:	83 3d 9c 25 43 00 00 	cmpl   $0x0,0x43259c
410f04:	0f 85 8d dd 00 00    	jne    0x41ec97
410f0a:	8b 75 fc             	mov    -0x4(%ebp),%esi
410f0d:	6a 0a                	push   $0xa
410f0f:	56                   	push   %esi
410f10:	ff 15 b0 a3 44 00    	call   *0x44a3b0
410f16:	83 c4 08             	add    $0x8,%esp
410f19:	89 45 fc             	mov    %eax,-0x4(%ebp)
410f1c:	85 c0                	test   %eax,%eax
410f1e:	0f 84 66 01 00 00    	je     0x41108a
410f24:	3b c6                	cmp    %esi,%eax
410f26:	76 10                	jbe    0x410f38
410f28:	66 83 78 fe 0d       	cmpw   $0xd,-0x2(%eax)
410f2d:	75 09                	jne    0x410f38
410f2f:	33 c9                	xor    %ecx,%ecx
410f31:	66 89 48 fe          	mov    %cx,-0x2(%eax)
410f35:	8b 45 fc             	mov    -0x4(%ebp),%eax
410f38:	33 c9                	xor    %ecx,%ecx
410f3a:	66 89 08             	mov    %cx,(%eax)
410f3d:	83 45 fc 02          	addl   $0x2,-0x4(%ebp)
410f41:	8b 45 ac             	mov    -0x54(%ebp),%eax
410f44:	85 c0                	test   %eax,%eax
410f46:	0f 85 0e 06 00 00    	jne    0x41155a
410f4c:	8b 45 ec             	mov    -0x14(%ebp),%eax
410f4f:	8b 55 f4             	mov    -0xc(%ebp),%edx
410f52:	8d 0c 85 00 00 00 00 	lea    0x0(,%eax,4),%ecx
410f59:	89 4d c8             	mov    %ecx,-0x38(%ebp)
410f5c:	83 fa 01             	cmp    $0x1,%edx
410f5f:	0f 8f b6 02 00 00    	jg     0x41121b
410f65:	89 4d c8             	mov    %ecx,-0x38(%ebp)
410f68:	0f b7 06             	movzwl (%esi),%eax
410f6b:	33 d2                	xor    %edx,%edx
410f6d:	89 55 d4             	mov    %edx,-0x2c(%ebp)
410f70:	89 55 f0             	mov    %edx,-0x10(%ebp)
410f73:	66 85 c0             	test   %ax,%ax
410f76:	0f 84 02 01 00 00    	je     0x41107e
410f7c:	b9 01 00 00 00       	mov    $0x1,%ecx
410f81:	89 4d d0             	mov    %ecx,-0x30(%ebp)
410f84:	8b 5d dc             	mov    -0x24(%ebp),%ebx
410f87:	66 85 c0             	test   %ax,%ax
410f8a:	74 1d                	je     0x410fa9
410f8c:	0f b7 c8             	movzwl %ax,%ecx
410f8f:	90                   	nop
410f90:	51                   	push   %ecx
410f91:	53                   	push   %ebx
410f92:	ff 15 b0 a3 44 00    	call   *0x44a3b0
410f98:	83 c4 08             	add    $0x8,%esp
410f9b:	85 c0                	test   %eax,%eax
410f9d:	0f 85 d4 02 00 00    	jne    0x411277
410fa3:	8b 55 d4             	mov    -0x2c(%ebp),%edx
410fa6:	8b 4d d0             	mov    -0x30(%ebp),%ecx
410fa9:	85 d2                	test   %edx,%edx
410fab:	0f 84 8e 00 00 00    	je     0x41103f
410fb1:	8b 45 b8             	mov    -0x48(%ebp),%eax
410fb4:	8b fe                	mov    %esi,%edi
410fb6:	85 c0                	test   %eax,%eax
410fb8:	0f 85 80 02 00 00    	jne    0x41123e
410fbe:	0f b7 06             	movzwl (%esi),%eax
410fc1:	66 85 c0             	test   %ax,%ax
410fc4:	74 54                	je     0x41101a
410fc6:	8b c8                	mov    %eax,%ecx
410fc8:	51                   	push   %ecx
410fc9:	53                   	push   %ebx
410fca:	ff 15 b0 a3 44 00    	call   *0x44a3b0
410fd0:	83 c4 08             	add    $0x8,%esp
410fd3:	85 c0                	test   %eax,%eax
410fd5:	75 0e                	jne    0x410fe5
410fd7:	0f b7 46 02          	movzwl 0x2(%esi),%eax
410fdb:	83 c6 02             	add    $0x2,%esi
410fde:	8b c8                	mov    %eax,%ecx
410fe0:	66 85 c0             	test   %ax,%ax
410fe3:	75 e3                	jne    0x410fc8
410fe5:	8b 55 d4             	mov    -0x2c(%ebp),%edx
410fe8:	3b fe                	cmp    %esi,%edi
410fea:	74 2e                	je     0x41101a
410fec:	83 fa 20             	cmp    $0x20,%edx
410fef:	7d 29                	jge    0x41101a
410ff1:	8b ca                	mov    %edx,%ecx
410ff3:	b8 01 00 00 00       	mov    $0x1,%eax
410ff8:	d3 e0                	shl    %cl,%eax
410ffa:	42                   	inc    %edx
410ffb:	89 55 d4             	mov    %edx,-0x2c(%ebp)
410ffe:	23 45 d8             	and    -0x28(%ebp),%eax
411001:	74 17                	je     0x41101a
411003:	8b 4d c8             	mov    -0x38(%ebp),%ecx
411006:	a1 3c 67 43 00       	mov    0x43673c,%eax
41100b:	ff 45 f0             	incl   -0x10(%ebp)
41100e:	89 3c 01             	mov    %edi,(%ecx,%eax,1)
411011:	83 c1 04             	add    $0x4,%ecx
411014:	ff 45 d0             	incl   -0x30(%ebp)
411017:	89 4d c8             	mov    %ecx,-0x38(%ebp)
41101a:	0f b7 06             	movzwl (%esi),%eax
41101d:	8b c8                	mov    %eax,%ecx
41101f:	66 85 c0             	test   %ax,%ax
411022:	74 0b                	je     0x41102f
411024:	33 c0                	xor    %eax,%eax
411026:	66 89 06             	mov    %ax,(%esi)
411029:	83 c6 02             	add    $0x2,%esi
41102c:	0f b7 0e             	movzwl (%esi),%ecx
41102f:	0f b7 c1             	movzwl %cx,%eax
411032:	66 85 c9             	test   %cx,%cx
411035:	74 14                	je     0x41104b
411037:	8b 4d d0             	mov    -0x30(%ebp),%ecx
41103a:	e9 45 ff ff ff       	jmp    0x410f84
41103f:	8b 45 bc             	mov    -0x44(%ebp),%eax
411042:	66 39 06             	cmp    %ax,(%esi)
411045:	0f 85 66 ff ff ff    	jne    0x410fb1
41104b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41104e:	85 c9                	test   %ecx,%ecx
411050:	74 2c                	je     0x41107e
411052:	8b 45 e8             	mov    -0x18(%ebp),%eax
411055:	8b 55 b0             	mov    -0x50(%ebp),%edx
411058:	8b 48 40             	mov    0x40(%eax),%ecx
41105b:	e8 5b fb ff ff       	call   0x410bbb
411060:	8b 5d b4             	mov    -0x4c(%ebp),%ebx
411063:	89 45 a8             	mov    %eax,-0x58(%ebp)
411066:	85 db                	test   %ebx,%ebx
411068:	0f 85 c4 01 00 00    	jne    0x411232
41106e:	8b 1d 78 67 43 00    	mov    0x436778,%ebx
411074:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
411077:	c7 45 b0 00 00 00 00 	movl   $0x0,-0x50(%ebp)
41107e:	8b 45 c4             	mov    -0x3c(%ebp),%eax
411081:	39 45 fc             	cmp    %eax,-0x4(%ebp)
411084:	0f 82 66 fe ff ff    	jb     0x410ef0
41108a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
41108d:	85 c0                	test   %eax,%eax
41108f:	0f 85 f9 01 00 00    	jne    0x41128e
411095:	8b 75 f8             	mov    -0x8(%ebp),%esi
411098:	8b 45 cc             	mov    -0x34(%ebp),%eax
41109b:	8d 34 46             	lea    (%esi,%eax,2),%esi
41109e:	83 c6 02             	add    $0x2,%esi
4110a1:	89 75 f8             	mov    %esi,-0x8(%ebp)
4110a4:	66 83 3e 00          	cmpw   $0x0,(%esi)
4110a8:	0f 85 f3 db 00 00    	jne    0x41eca1
4110ae:	83 7d f4 01          	cmpl   $0x1,-0xc(%ebp)
4110b2:	7e 22                	jle    0x4110d6
4110b4:	a1 40 67 43 00       	mov    0x436740,%eax
4110b9:	85 c0                	test   %eax,%eax
4110bb:	74 19                	je     0x4110d6
4110bd:	66 83 38 00          	cmpw   $0x0,(%eax)
4110c1:	74 13                	je     0x4110d6
4110c3:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4110c6:	33 d2                	xor    %edx,%edx
4110c8:	66 89 54 48 02       	mov    %dx,0x2(%eax,%ecx,2)
4110cd:	a1 3c 67 43 00       	mov    0x43673c,%eax
4110d2:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
4110d6:	8b 45 a8             	mov    -0x58(%ebp),%eax
4110d9:	5f                   	pop    %edi
4110da:	5e                   	pop    %esi
4110db:	5b                   	pop    %ebx
4110dc:	8b e5                	mov    %ebp,%esp
4110de:	5d                   	pop    %ebp
4110df:	c2 04 00             	ret    $0x4
4110e2:	66 39 59 02          	cmp    %bx,0x2(%ecx)
4110e6:	0f 84 47 fc ff ff    	je     0x410d33
4110ec:	8b 5d ac             	mov    -0x54(%ebp),%ebx
4110ef:	0f b7 31             	movzwl (%ecx),%esi
4110f2:	33 c0                	xor    %eax,%eax
4110f4:	66 89 01             	mov    %ax,(%ecx)
4110f7:	8b 4d dc             	mov    -0x24(%ebp),%ecx