40598c:	04 00                	add    $0x0,%al
40598e:	00 00                	add    %al,(%eax)
405990:	2e 74 6c             	je,pn  0x4059ff
405993:	73 00                	jae    0x405995
405995:	00 00                	add    %al,(%eax)
405997:	00 d8                	add    %bl,%al
405999:	2c 02                	sub    $0x2,%al
40599b:	00 04 00             	add    %al,(%eax,%eax,1)
40599e:	00 00                	add    %al,(%eax)
4059a0:	2e 74 6c             	je,pn  0x405a0f
4059a3:	73 24                	jae    0x4059c9
4059a5:	00 00                	add    %al,(%eax)
4059a7:	00 dc                	add    %bl,%ah
4059a9:	2c 02                	sub    $0x2,%al
4059ab:	00 04 00             	add    %al,(%eax,%eax,1)
4059ae:	00 00                	add    %al,(%eax)
4059b0:	2e 74 6c             	je,pn  0x405a1f
4059b3:	73 24                	jae    0x4059d9
4059b5:	5a                   	pop    %edx
4059b6:	5a                   	pop    %edx
4059b7:	5a                   	pop    %edx
4059b8:	00 00                	add    %al,(%eax)
4059ba:	00 00                	add    %al,(%eax)
4059bc:	e0 2c                	loopne 0x4059ea
4059be:	02 00                	add    (%eax),%al
4059c0:	68 01 00 00 2e       	push   $0x2e000001
4059c5:	78 64                	js     0x405a2b
4059c7:	61                   	popa
4059c8:	74 61                	je     0x405a2b
4059ca:	24 78                	and    $0x78,%al
4059cc:	00 00                	add    %al,(%eax)
4059ce:	00 00                	add    %al,(%eax)
4059d0:	48                   	dec    %eax
4059d1:	2e 02 00             	add    %cs:(%eax),%al
4059d4:	c0 00 00             	rolb   $0x0,(%eax)
4059d7:	00 2e                	add    %ch,(%esi)
4059d9:	64 69 64 61 74 24 32 	imul   $0x3224,%fs:0x74(%ecx,%eiz,2),%esp
4059e0:	00 00
4059e2:	00 00                	add    %al,(%eax)
4059e4:	08 2f                	or     %ch,(%edi)
4059e6:	02 00                	add    (%eax),%al
4059e8:	20 00                	and    %al,(%eax)
4059ea:	00 00                	add    %al,(%eax)
4059ec:	2e 64 69 64 61 74 24 	cs imul $0x3324,%fs:0x74(%ecx,%eiz,2),%esp
4059f3:	33 00 00
4059f6:	00 00                	add    %al,(%eax)
4059f8:	28 2f                	sub    %ch,(%edi)
4059fa:	02 00                	add    (%eax),%al
4059fc:	bc 00 00 00 2e       	mov    $0x2e000000,%esp
405a01:	64 69 64 61 74 24 34 	imul   $0x3424,%fs:0x74(%ecx,%eiz,2),%esp
405a08:	00 00
405a0a:	00 00                	add    %al,(%eax)
405a0c:	e4 2f                	in     $0x2f,%al
405a0e:	02 00                	add    (%eax),%al
405a10:	18 03                	sbb    %al,(%ebx)
405a12:	00 00                	add    %al,(%eax)
405a14:	2e 64 69 64 61 74 24 	cs imul $0x3624,%fs:0x74(%ecx,%eiz,2),%esp
405a1b:	36 00 00
405a1e:	00 00                	add    %al,(%eax)
405a20:	fc                   	cld
405a21:	32 02                	xor    (%edx),%al
405a23:	00 bc 00 00 00 2e 64 	add    %bh,0x642e0000(%eax,%eax,1)
405a2a:	69 64 61 74 24 37 00 	imul   $0x3724,0x74(%ecx,%eiz,2),%esp
405a31:	00
405a32:	00 00                	add    %al,(%eax)
405a34:	00 40 02             	add    %al,0x2(%eax)
405a37:	00 88 01 00 00 2e    	add    %cl,0x2e000001(%eax)
405a3d:	64 61                	fs popa
405a3f:	74 61                	je     0x405aa2
405a41:	24 62                	and    $0x62,%al
405a43:	72 63                	jb     0x405aa8
405a45:	00 00                	add    %al,(%eax)
405a47:	00 88 41 02 00 78    	add    %cl,0x78000241(%eax)
405a4d:	00 00                	add    %al,(%eax)
405a4f:	00 2e                	add    %ch,(%esi)
405a51:	64 61                	fs popa
405a53:	74 61                	je     0x405ab6
405a55:	24 72                	and    $0x72,%al
405a57:	24 62                	and    $0x62,%al
405a59:	72 63                	jb     0x405abe
405a5b:	00 00                	add    %al,(%eax)
405a5d:	42                   	inc    %edx
405a5e:	02 00                	add    (%eax),%al
405a60:	c0 06 00             	rolb   $0x0,(%esi)
405a63:	00 2e                	add    %ch,(%esi)
405a65:	64 61                	fs popa
405a67:	74 61                	je     0x405aca
405a69:	00 00                	add    %al,(%eax)
405a6b:	00 c0                	add    %al,%al
405a6d:	48                   	dec    %eax
405a6e:	02 00                	add    (%eax),%al
405a70:	b4 16                	mov    $0x16,%ah
405a72:	00 00                	add    %al,(%eax)
405a74:	2e 62 73 73          	bound  %esi,%cs:0x73(%ebx)
405a78:	00 00                	add    %al,(%eax)
405a7a:	00 00                	add    %al,(%eax)
405a7c:	00 60 02             	add    %ah,0x2(%eax)
405a7f:	00 78 04             	add    %bh,0x4(%eax)
405a82:	00 00                	add    %al,(%eax)
405a84:	2e 69 64 61 74 61 24 	imul   $0x352461,%cs:0x74(%ecx,%eiz,2),%esp
405a8b:	35 00
405a8d:	00 00                	add    %al,(%eax)
405a8f:	00 78 64             	add    %bh,0x64(%eax)
405a92:	02 00                	add    (%eax),%al
405a94:	04 00                	add    $0x0,%al
405a96:	00 00                	add    %al,(%eax)
405a98:	2e 30 30             	xor    %dh,%cs:(%eax)
405a9b:	63 66 67             	arpl   %esp,0x67(%esi)
405a9e:	00 00                	add    %al,(%eax)
405aa0:	7c 64                	jl     0x405b06
405aa2:	02 00                	add    (%eax),%al
405aa4:	08 02                	or     %al,(%edx)
405aa6:	00 00                	add    %al,(%eax)
405aa8:	2e 69 64 61 74 61 24 	imul   $0x322461,%cs:0x74(%ecx,%eiz,2),%esp
405aaf:	32 00
405ab1:	00 00                	add    %al,(%eax)
405ab3:	00 84 66 02 00 14 00 	add    %al,0x140002(%esi,%eiz,2)
405aba:	00 00                	add    %al,(%eax)
405abc:	2e 69 64 61 74 61 24 	imul   $0x332461,%cs:0x74(%ecx,%eiz,2),%esp
405ac3:	33 00
405ac5:	00 00                	add    %al,(%eax)
405ac7:	00 98 66 02 00 78    	add    %bl,0x78000266(%eax)
405acd:	04 00                	add    $0x0,%al
405acf:	00 2e                	add    %ch,(%esi)
405ad1:	69 64 61 74 61 24 34 	imul   $0x342461,0x74(%ecx,%eiz,2),%esp
405ad8:	00
405ad9:	00 00                	add    %al,(%eax)
405adb:	00 10                	add    %dl,(%eax)
405add:	6b 02 00             	imul   $0x0,(%edx),%eax
405ae0:	3e 16                	ds push %ss
405ae2:	00 00                	add    %al,(%eax)
405ae4:	2e 69 64 61 74 61 24 	imul   $0x362461,%cs:0x74(%ecx,%eiz,2),%esp
405aeb:	36 00
405aed:	00 00                	add    %al,(%eax)
405aef:	00 00                	add    %al,(%eax)
405af1:	90                   	nop
405af2:	02 00                	add    (%eax),%al
405af4:	bc 00 00 00 2e       	mov    $0x2e000000,%esp
405af9:	64 69 64 61 74 24 35 	imul   $0x3524,%fs:0x74(%ecx,%eiz,2),%esp
405b00:	00 00
405b02:	00 00                	add    %al,(%eax)
405b04:	00 a0 02 00 60 02    	add    %ah,0x2600002(%eax)
405b0a:	00 00                	add    %al,(%eax)
405b0c:	2e 72 73             	jb,pn  0x405b82
405b0f:	72 63                	jb     0x405b74
405b11:	24 30                	and    $0x30,%al
405b13:	31 00                	xor    %eax,(%eax)
405b15:	00 00                	add    %al,(%eax)
405b17:	00 60 a2             	add    %ah,-0x5e(%eax)
405b1a:	02 00                	add    (%eax),%al
405b1c:	78 09                	js     0x405b27
405b1e:	00 00                	add    %al,(%eax)
405b20:	2e 72 73             	jb,pn  0x405b96
405b23:	72 63                	jb     0x405b88
405b25:	24 30                	and    $0x30,%al
405b27:	32 00                	xor    (%eax),%al
405b29:	00 00                	add    %al,(%eax)
405b2b:	00 20                	add    %ah,(%eax)
405b2d:	00 00                	add    %al,(%eax)
405b2f:	00 87 a2 c3 21 9f    	add    %al,-0x60de3c5e(%edi)
405b35:	3e ad                	lods   %ds:(%esi),%eax
405b37:	57                   	push   %edi
405b38:	16                   	push   %ss
405b39:	e5 8c                	in     $0x8c,%eax
405b3b:	eb 78                	jmp    0x405bb5
405b3d:	4e                   	dec    %esi
405b3e:	ef                   	out    %eax,(%dx)
405b3f:	dc 4a 29             	fmull  0x29(%edx)
405b42:	5f                   	pop    %edi
405b43:	be ad 85 95 1a       	mov    $0x1a9585ad,%esi
405b48:	c3                   	ret
405b49:	5a                   	pop    %edx
405b4a:	4d                   	dec    %ebp
405b4b:	cd 89                	int    $0x89
405b4d:	24 06                	and    $0x6,%al
405b4f:	02 00                	add    (%eax),%al
405b5d:	00 00                	add    %al,(%eax)
405b5f:	00 8b ff 55 8b ec    	add    %cl,-0x1374aa01(%ebx)
405b65:	83 ec 44             	sub    $0x44,%esp
405b68:	a1 10 42 42 00       	mov    0x424210,%eax
405b6d:	33 c5                	xor    %ebp,%eax
405b6f:	89 45 fc             	mov    %eax,-0x4(%ebp)
405b72:	8b 45 14             	mov    0x14(%ebp),%eax
405b75:	33 c9                	xor    %ecx,%ecx
405b77:	89 4d f0             	mov    %ecx,-0x10(%ebp)
405b7a:	c7 45 f4 08 00 00 00 	movl   $0x8,-0xc(%ebp)
405b81:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405b84:	8b 00                	mov    (%eax),%eax
405b86:	89 45 ec             	mov    %eax,-0x14(%ebp)
405b89:	8b 45 10             	mov    0x10(%ebp),%eax
405b8c:	89 4d e0             	mov    %ecx,-0x20(%ebp)
405b8f:	c7 45 e4 10 00 00 00 	movl   $0x10,-0x1c(%ebp)
405b96:	89 4d e8             	mov    %ecx,-0x18(%ebp)
405b99:	8b 00                	mov    (%eax),%eax
405b9b:	89 45 dc             	mov    %eax,-0x24(%ebp)
405b9e:	8d 45 bc             	lea    -0x44(%ebp),%eax
405ba1:	50                   	push   %eax
405ba2:	6a 04                	push   $0x4
405ba4:	51                   	push   %ecx
405ba5:	51                   	push   %ecx
405ba6:	52                   	push   %edx
405ba7:	68 08 41 42 00       	push   $0x424108
405bac:	e8 c7 03 00 00       	call   0x405f78
405bb1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405bb4:	33 cd                	xor    %ebp,%ecx
405bb6:	e8 b5 bc 01 00       	call   0x421870
405bbb:	c9                   	leave
405bbc:	c2 10 00             	ret    $0x10
405bbf:	8b ff                	mov    %edi,%edi
405bc1:	55                   	push   %ebp
405bc2:	8b ec                	mov    %esp,%ebp
405bc4:	83 ec 54             	sub    $0x54,%esp
405bc7:	a1 10 42 42 00       	mov    0x424210,%eax
405bcc:	33 c5                	xor    %ebp,%eax
405bce:	89 45 fc             	mov    %eax,-0x4(%ebp)
405bd1:	8b 45 18             	mov    0x18(%ebp),%eax
405bd4:	33 c9                	xor    %ecx,%ecx
405bd6:	89 45 ec             	mov    %eax,-0x14(%ebp)
405bd9:	8b 45 14             	mov    0x14(%ebp),%eax
405bdc:	89 4d f0             	mov    %ecx,-0x10(%ebp)
405bdf:	c7 45 f4 04 00 00 00 	movl   $0x4,-0xc(%ebp)
405be6:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405be9:	8b 00                	mov    (%eax),%eax
405beb:	89 45 dc             	mov    %eax,-0x24(%ebp)
405bee:	8b 45 10             	mov    0x10(%ebp),%eax
405bf1:	89 4d e0             	mov    %ecx,-0x20(%ebp)
405bf4:	c7 45 e4 08 00 00 00 	movl   $0x8,-0x1c(%ebp)
405bfb:	89 4d e8             	mov    %ecx,-0x18(%ebp)
405bfe:	8b 00                	mov    (%eax),%eax
405c00:	89 45 cc             	mov    %eax,-0x34(%ebp)
405c03:	8d 45 ac             	lea    -0x54(%ebp),%eax
405c06:	50                   	push   %eax
405c07:	6a 05                	push   $0x5
405c09:	51                   	push   %ecx
405c0a:	51                   	push   %ecx
405c0b:	52                   	push   %edx
405c0c:	68 08 41 42 00       	push   $0x424108
405c11:	89 4d d0             	mov    %ecx,-0x30(%ebp)
405c14:	c7 45 d4 10 00 00 00 	movl   $0x10,-0x2c(%ebp)
405c1b:	89 4d d8             	mov    %ecx,-0x28(%ebp)
405c1e:	e8 55 03 00 00       	call   0x405f78
405c23:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405c26:	33 cd                	xor    %ebp,%ecx
405c28:	e8 43 bc 01 00       	call   0x421870
405c2d:	c9                   	leave
405c2e:	c2 14 00             	ret    $0x14
405c31:	8b ff                	mov    %edi,%edi
405c33:	55                   	push   %ebp
405c34:	8b ec                	mov    %esp,%ebp
405c36:	81 ec 94 00 00 00    	sub    $0x94,%esp
405c3c:	a1 10 42 42 00       	mov    0x424210,%eax
405c41:	33 c5                	xor    %ebp,%eax
405c43:	89 45 fc             	mov    %eax,-0x4(%ebp)
405c46:	8b 45 28             	mov    0x28(%ebp),%eax
405c49:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
405c4c:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
405c50:	53                   	push   %ebx
405c51:	56                   	push   %esi
405c52:	8b 75 18             	mov    0x18(%ebp),%esi
405c55:	33 db                	xor    %ebx,%ebx
405c57:	57                   	push   %edi
405c58:	89 45 ec             	mov    %eax,-0x14(%ebp)
405c5b:	8b fa                	mov    %edx,%edi
405c5d:	8b 45 24             	mov    0x24(%ebp),%eax
405c60:	89 45 dc             	mov    %eax,-0x24(%ebp)
405c63:	8b 45 20             	mov    0x20(%ebp),%eax
405c66:	6a 04                	push   $0x4
405c68:	5a                   	pop    %edx
405c69:	6a 08                	push   $0x8
405c6b:	8b 00                	mov    (%eax),%eax
405c6d:	89 5d f0             	mov    %ebx,-0x10(%ebp)
405c70:	89 5d f8             	mov    %ebx,-0x8(%ebp)
405c73:	89 5d e0             	mov    %ebx,-0x20(%ebp)
405c76:	89 5d e8             	mov    %ebx,-0x18(%ebp)
405c79:	89 45 cc             	mov    %eax,-0x34(%ebp)
405c7c:	8d 45 bc             	lea    -0x44(%ebp),%eax
405c7f:	89 5d d0             	mov    %ebx,-0x30(%ebp)
405c82:	5b                   	pop    %ebx
405c83:	50                   	push   %eax
405c84:	89 55 f4             	mov    %edx,-0xc(%ebp)
405c87:	89 55 e4             	mov    %edx,-0x1c(%ebp)
405c8a:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
405c8d:	e8 9e 02 00 00       	call   0x405f30
405c92:	8d 45 ac             	lea    -0x54(%ebp),%eax
405c95:	8b ce                	mov    %esi,%ecx
405c97:	50                   	push   %eax
405c98:	e8 93 02 00 00       	call   0x405f30
405c9d:	8b 45 14             	mov    0x14(%ebp),%eax
405ca0:	33 c9                	xor    %ecx,%ecx
405ca2:	89 4d a0             	mov    %ecx,-0x60(%ebp)
405ca5:	89 5d a4             	mov    %ebx,-0x5c(%ebp)
405ca8:	89 4d a8             	mov    %ecx,-0x58(%ebp)
405cab:	8b 00                	mov    (%eax),%eax
405cad:	89 45 9c             	mov    %eax,-0x64(%ebp)
405cb0:	8b 45 10             	mov    0x10(%ebp),%eax
405cb3:	89 4d 90             	mov    %ecx,-0x70(%ebp)
405cb6:	c7 45 94 10 00 00 00 	movl   $0x10,-0x6c(%ebp)
405cbd:	89 4d 98             	mov    %ecx,-0x68(%ebp)
405cc0:	8b 00                	mov    (%eax),%eax
405cc2:	89 45 8c             	mov    %eax,-0x74(%ebp)
405cc5:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
405ccb:	50                   	push   %eax
405ccc:	6a 09                	push   $0x9
405cce:	51                   	push   %ecx
405ccf:	51                   	push   %ecx
405cd0:	57                   	push   %edi
405cd1:	68 08 41 42 00       	push   $0x424108
405cd6:	e8 9d 02 00 00       	call   0x405f78
405cdb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405cde:	5f                   	pop    %edi
405cdf:	5e                   	pop    %esi
405ce0:	33 cd                	xor    %ebp,%ecx
405ce2:	5b                   	pop    %ebx
405ce3:	e8 88 bb 01 00       	call   0x421870
405ce8:	c9                   	leave
405ce9:	c2 24 00             	ret    $0x24
405cec:	8b ff                	mov    %edi,%edi
405cee:	55                   	push   %ebp
405cef:	8b ec                	mov    %esp,%ebp
405cf1:	81 ec 84 01 00 00    	sub    $0x184,%esp
405cf7:	a1 10 42 42 00       	mov    0x424210,%eax
405cfc:	33 c5                	xor    %ebp,%eax
405cfe:	89 45 fc             	mov    %eax,-0x4(%ebp)
405d01:	8b 45 64             	mov    0x64(%ebp),%eax
405d04:	89 45 ec             	mov    %eax,-0x14(%ebp)
405d07:	8b 45 60             	mov    0x60(%ebp),%eax
405d0a:	89 45 dc             	mov    %eax,-0x24(%ebp)
405d0d:	8b 45 5c             	mov    0x5c(%ebp),%eax
405d10:	89 45 cc             	mov    %eax,-0x34(%ebp)
405d13:	8b 45 58             	mov    0x58(%ebp),%eax
405d16:	89 45 bc             	mov    %eax,-0x44(%ebp)
405d19:	8b 45 54             	mov    0x54(%ebp),%eax
405d1c:	89 45 ac             	mov    %eax,-0x54(%ebp)
405d1f:	8b 45 50             	mov    0x50(%ebp),%eax
405d22:	89 45 9c             	mov    %eax,-0x64(%ebp)
405d25:	8b 45 4c             	mov    0x4c(%ebp),%eax
405d28:	89 45 8c             	mov    %eax,-0x74(%ebp)
405d2b:	8b 45 48             	mov    0x48(%ebp),%eax
405d2e:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
405d34:	8b 45 44             	mov    0x44(%ebp),%eax
405d37:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
405d3d:	8b 45 40             	mov    0x40(%ebp),%eax
405d40:	56                   	push   %esi
405d41:	33 f6                	xor    %esi,%esi
405d43:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
405d49:	8b 45 3c             	mov    0x3c(%ebp),%eax
405d4c:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
405d52:	8b 45 38             	mov    0x38(%ebp),%eax
405d55:	6a 04                	push   $0x4
405d57:	59                   	pop    %ecx