4779d4:	8b ca                	mov    %edx,%ecx
4779d6:	e8 e8 1d fc ff       	call   0x4397c3
4779db:	e9 3f 6a f9 ff       	jmp    0x40e41f
4779e0:	85 d2                	test   %edx,%edx
4779e2:	0f 84 37 6a f9 ff    	je     0x40e41f
4779e8:	51                   	push   %ecx
4779e9:	8b ca                	mov    %edx,%ecx
4779eb:	e8 fd 1d fc ff       	call   0x4397ed
4779f0:	e9 2a 6a f9 ff       	jmp    0x40e41f
4779f5:	85 d2                	test   %edx,%edx
4779f7:	0f 84 22 6a f9 ff    	je     0x40e41f
4779fd:	51                   	push   %ecx
4779fe:	8b ca                	mov    %edx,%ecx
477a00:	e8 94 b0 f8 ff       	call   0x402a99
477a05:	e9 15 6a f9 ff       	jmp    0x40e41f
477a0a:	8b 03                	mov    (%ebx),%eax
477a0c:	89 06                	mov    %eax,(%esi)
477a0e:	8b 43 04             	mov    0x4(%ebx),%eax
477a11:	89 46 04             	mov    %eax,0x4(%esi)
477a14:	e9 c3 6a f9 ff       	jmp    0x40e4dc
477a19:	03 c0                	add    %eax,%eax
477a1b:	83 f8 08             	cmp    $0x8,%eax
477a1e:	73 05                	jae    0x477a25
477a20:	b8 08 00 00 00       	mov    $0x8,%eax
477a25:	33 c9                	xor    %ecx,%ecx
477a27:	89 45 ec             	mov    %eax,-0x14(%ebp)
477a2a:	ba 04 00 00 00       	mov    $0x4,%edx
477a2f:	f7 e2                	mul    %edx
477a31:	0f 90 c1             	seto   %cl
477a34:	f7 d9                	neg    %ecx
477a36:	0b c8                	or     %eax,%ecx
477a38:	51                   	push   %ecx
477a39:	e8 ac 7a fa ff       	call   0x41f4ea
477a3e:	8b f0                	mov    %eax,%esi
477a40:	8b 45 e4             	mov    -0x1c(%ebp),%eax
477a43:	83 c4 04             	add    $0x4,%esp
477a46:	85 c0                	test   %eax,%eax
477a48:	74 20                	je     0x477a6a
477a4a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
477a4d:	85 c9                	test   %ecx,%ecx
477a4f:	74 19                	je     0x477a6a
477a51:	c1 e1 02             	shl    $0x2,%ecx
477a54:	51                   	push   %ecx
477a55:	50                   	push   %eax
477a56:	56                   	push   %esi
477a57:	e8 24 74 fa ff       	call   0x41ee80
477a5c:	83 c4 0c             	add    $0xc,%esp
477a5f:	ff 75 e4             	push   -0x1c(%ebp)
477a62:	e8 f7 7a fa ff       	call   0x41f55e
477a67:	83 c4 04             	add    $0x4,%esp
477a6a:	89 75 e4             	mov    %esi,-0x1c(%ebp)
477a6d:	e9 32 6b f9 ff       	jmp    0x40e5a4
477a72:	66 83 f8 30          	cmp    $0x30,%ax
477a76:	0f 8c 5a 6b f9 ff    	jl     0x40e5d6
477a7c:	6a 10                	push   $0x10
477a7e:	e8 67 7a fa ff       	call   0x41f4ea
477a83:	8b d0                	mov    %eax,%edx
477a85:	83 c4 04             	add    $0x4,%esp
477a88:	85 d2                	test   %edx,%edx
477a8a:	74 21                	je     0x477aad
477a8c:	8b 07                	mov    (%edi),%eax
477a8e:	8b 08                	mov    (%eax),%ecx
477a90:	89 0a                	mov    %ecx,(%edx)
477a92:	8b 48 04             	mov    0x4(%eax),%ecx
477a95:	89 4a 04             	mov    %ecx,0x4(%edx)
477a98:	8b 48 08             	mov    0x8(%eax),%ecx
477a9b:	89 4a 08             	mov    %ecx,0x8(%edx)
477a9e:	8b 40 0c             	mov    0xc(%eax),%eax
477aa1:	89 42 0c             	mov    %eax,0xc(%edx)
477aa4:	ff 00                	incl   (%eax)
477aa6:	89 16                	mov    %edx,(%esi)
477aa8:	e9 41 6b f9 ff       	jmp    0x40e5ee
477aad:	33 d2                	xor    %edx,%edx
477aaf:	89 16                	mov    %edx,(%esi)
477ab1:	e9 38 6b f9 ff       	jmp    0x40e5ee
477ab6:	8b 07                	mov    (%edi),%eax
477ab8:	89 06                	mov    %eax,(%esi)
477aba:	8b 47 04             	mov    0x4(%edi),%eax
477abd:	89 46 04             	mov    %eax,0x4(%esi)
477ac0:	e9 29 6b f9 ff       	jmp    0x40e5ee
477ac5:	ff 33                	push   (%ebx)
477ac7:	e8 92 7a fa ff       	call   0x41f55e
477acc:	83 c4 04             	add    $0x4,%esp
477acf:	ff 73 0c             	push   0xc(%ebx)
477ad2:	e8 87 7a fa ff       	call   0x41f55e
477ad7:	83 c4 04             	add    $0x4,%esp
477ada:	e9 9d 6b f9 ff       	jmp    0x40e67c
477adf:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
477ae3:	0f 85 ee 6b f9 ff    	jne    0x40e6d7
477ae9:	80 7d 0b 01          	cmpb   $0x1,0xb(%ebp)
477aed:	0f 84 b3 00 00 00    	je     0x477ba6
477af3:	84 db                	test   %bl,%bl
477af5:	0f 85 dc 6b f9 ff    	jne    0x40e6d7
477afb:	8b 4d f8             	mov    -0x8(%ebp),%ecx
477afe:	8d 42 ff             	lea    -0x1(%edx),%eax
477b01:	89 81 f4 00 00 00    	mov    %eax,0xf4(%ecx)
477b07:	8d 45 ff             	lea    -0x1(%ebp),%eax
477b0a:	50                   	push   %eax
477b0b:	8d 45 f0             	lea    -0x10(%ebp),%eax
477b0e:	50                   	push   %eax
477b0f:	56                   	push   %esi
477b10:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
477b17:	e8 94 db f8 ff       	call   0x4056b0
477b1c:	85 c0                	test   %eax,%eax
477b1e:	0f 88 89 6c f9 ff    	js     0x40e7ad
477b24:	8b 56 04             	mov    0x4(%esi),%edx
477b27:	8b 4d f0             	mov    -0x10(%ebp),%ecx
477b2a:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
477b2d:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
477b32:	75 4a                	jne    0x477b7e
477b34:	83 38 05             	cmpl   $0x5,(%eax)
477b37:	75 45                	jne    0x477b7e
477b39:	8b 44 8a 04          	mov    0x4(%edx,%ecx,4),%eax
477b3d:	66 83 78 08 7f       	cmpw   $0x7f,0x8(%eax)
477b42:	75 15                	jne    0x477b59
477b44:	8a 5d ff             	mov    -0x1(%ebp),%bl
477b47:	84 db                	test   %bl,%bl
477b49:	0f 84 88 6b f9 ff    	je     0x40e6d7
477b4f:	8b 17                	mov    (%edi),%edx
477b51:	89 55 f4             	mov    %edx,-0xc(%ebp)
477b54:	e9 7e 6b f9 ff       	jmp    0x40e6d7
477b59:	8b 07                	mov    (%edi),%eax
477b5b:	8b 55 f8             	mov    -0x8(%ebp),%edx
477b5e:	48                   	dec    %eax
477b5f:	89 82 f4 00 00 00    	mov    %eax,0xf4(%edx)
477b65:	8b 46 04             	mov    0x4(%esi),%eax
477b68:	8b 04 88             	mov    (%eax,%ecx,4),%eax
477b6b:	8b ca                	mov    %edx,%ecx
477b6d:	0f bf 40 0a          	movswl 0xa(%eax),%eax
477b71:	50                   	push   %eax
477b72:	6a 72                	push   $0x72
477b74:	e8 e3 50 fd ff       	call   0x44cc5c
477b79:	e9 2f 6c f9 ff       	jmp    0x40e7ad
477b7e:	8b 07                	mov    (%edi),%eax
477b80:	8b 55 f8             	mov    -0x8(%ebp),%edx
477b83:	48                   	dec    %eax
477b84:	89 82 f4 00 00 00    	mov    %eax,0xf4(%edx)
477b8a:	8b 46 04             	mov    0x4(%esi),%eax
477b8d:	8b 04 88             	mov    (%eax,%ecx,4),%eax
477b90:	8b ca                	mov    %edx,%ecx
477b92:	0f bf 40 0a          	movswl 0xa(%eax),%eax
477b96:	50                   	push   %eax
477b97:	68 a1 00 00 00       	push   $0xa1
477b9c:	e8 bb 50 fd ff       	call   0x44cc5c
477ba1:	e9 07 6c f9 ff       	jmp    0x40e7ad
477ba6:	8b 4d f8             	mov    -0x8(%ebp),%ecx
477ba9:	6a ff                	push   $0xffffffff
477bab:	6a 76                	push   $0x76
477bad:	e8 aa 50 fd ff       	call   0x44cc5c
477bb2:	e9 f6 6b f9 ff       	jmp    0x40e7ad
477bb7:	8b 8b 64 01 00 00    	mov    0x164(%ebx),%ecx
477bbd:	8d 45 b0             	lea    -0x50(%ebp),%eax
477bc0:	50                   	push   %eax
477bc1:	e8 9c 51 fe ff       	call   0x45cd62
477bc6:	c6 83 69 01 00 00 00 	movb   $0x0,0x169(%ebx)
477bcd:	e9 d5 6b f9 ff       	jmp    0x40e7a7
477bd2:	0f bf 40 0a          	movswl 0xa(%eax),%eax
477bd6:	8b 4d f8             	mov    -0x8(%ebp),%ecx
477bd9:	50                   	push   %eax
477bda:	68 a1 00 00 00       	push   $0xa1
477bdf:	e8 78 50 fd ff       	call   0x44cc5c
477be4:	e9 67 68 f9 ff       	jmp    0x40e450
477be9:	90                   	nop
477bea:	a3 79 47 00 1f       	mov    %eax,0x1f004779
477bef:	e4 40                	in     $0x40,%al
477bf1:	00 1f                	add    %bl,(%edi)
477bf3:	e4 40                	in     $0x40,%al
477bf5:	00 6f 79             	add    %ch,0x79(%edi)
477bf8:	47                   	inc    %edi
477bf9:	00 1f                	add    %bl,(%edi)
477bfb:	e4 40                	in     $0x40,%al
477bfd:	00 8e 79 47 00 b0    	add    %cl,-0x4fffb887(%esi)
477c03:	79 47                	jns    0x477c4c
477c05:	00 cb                	add    %cl,%bl
477c07:	79 47                	jns    0x477c50
477c09:	00 f5                	add    %dh,%ch
477c0b:	79 47                	jns    0x477c54
477c0d:	00 f5                	add    %dh,%ch
477c0f:	79 47                	jns    0x477c58
477c11:	00 e0                	add    %ah,%al
477c13:	79 47                	jns    0x477c5c
477c15:	00 8b 42 04 8b 58    	add    %cl,0x588b0442(%ebx)
477c1b:	30 e9                	xor    %ch,%cl
477c1d:	36 65 f9             	ss gs stc
477c20:	ff 8d 55 d8 52 8d    	decl   -0x72ad27ab(%ebp)
477c26:	43                   	inc    %ebx
477c27:	20 50 57             	and    %dl,0x57(%eax)
477c2a:	e8 d9 3e fe ff       	call   0x45bb08
477c2f:	85 c0                	test   %eax,%eax
477c31:	0f 88 72 01 00 00    	js     0x477da9
477c37:	83 7b 2c 08          	cmpl   $0x8,0x2c(%ebx)
477c3b:	0f 85 68 01 00 00    	jne    0x477da9
477c41:	8d 45 d8             	lea    -0x28(%ebp),%eax
477c44:	50                   	push   %eax
477c45:	8b cf                	mov    %edi,%ecx
477c47:	e8 62 60 f9 ff       	call   0x40dcae
477c4c:	8b 4b 04             	mov    0x4(%ebx),%ecx
477c4f:	8b 45 0c             	mov    0xc(%ebp),%eax
477c52:	41                   	inc    %ecx
477c53:	89 08                	mov    %ecx,(%eax)
477c55:	e9 1a 66 f9 ff       	jmp    0x40e274
477c5a:	8d 4b 10             	lea    0x10(%ebx),%ecx
477c5d:	6a 01                	push   $0x1
477c5f:	e8 bb 43 fa ff       	call   0x41c01f
477c64:	8d 4b 20             	lea    0x20(%ebx),%ecx
477c67:	8d 70 ff             	lea    -0x1(%eax),%esi
477c6a:	e8 17 56 f9 ff       	call   0x40d286
477c6f:	3b c6                	cmp    %esi,%eax
477c71:	0f 8d 32 01 00 00    	jge    0x477da9
477c77:	8d 4b 20             	lea    0x20(%ebx),%ecx
477c7a:	e8 07 56 f9 ff       	call   0x40d286
477c7f:	8d 4b 20             	lea    0x20(%ebx),%ecx
477c82:	8d 70 01             	lea    0x1(%eax),%esi
477c85:	e8 96 af f9 ff       	call   0x412c20
477c8a:	89 73 20             	mov    %esi,0x20(%ebx)
477c8d:	8d 73 10             	lea    0x10(%ebx),%esi
477c90:	8b ce                	mov    %esi,%ecx
477c92:	c7 43 2c 01 00 00 00 	movl   $0x1,0x2c(%ebx)
477c99:	e8 be 44 fa ff       	call   0x41c15c
477c9e:	8d 4b 20             	lea    0x20(%ebx),%ecx
477ca1:	e8 e0 55 f9 ff       	call   0x40d286
477ca6:	50                   	push   %eax
477ca7:	8b ce                	mov    %esi,%ecx
477ca9:	e8 c9 44 fa ff       	call   0x41c177
477cae:	6a 00                	push   $0x0
477cb0:	6a 01                	push   $0x1
477cb2:	56                   	push   %esi
477cb3:	e8 d8 9e f9 ff       	call   0x411b90
477cb8:	83 c4 0c             	add    $0xc,%esp
477cbb:	85 c0                	test   %eax,%eax
477cbd:	0f 84 d3 06 00 00    	je     0x478396
477cc3:	6a 00                	push   $0x0
477cc5:	6a 00                	push   $0x0
477cc7:	56                   	push   %esi
477cc8:	e8 c3 9e f9 ff       	call   0x411b90
477ccd:	83 c4 0c             	add    $0xc,%esp
477cd0:	8b cf                	mov    %edi,%ecx
477cd2:	50                   	push   %eax
477cd3:	e8 d6 5f f9 ff       	call   0x40dcae
477cd8:	8b 4b 04             	mov    0x4(%ebx),%ecx
477cdb:	8b 45 0c             	mov    0xc(%ebp),%eax
477cde:	41                   	inc    %ecx
477cdf:	89 08                	mov    %ecx,(%eax)
477ce1:	e9 8e 65 f9 ff       	jmp    0x40e274
477ce6:	8b 43 10             	mov    0x10(%ebx),%eax
477ce9:	8d 4b 20             	lea    0x20(%ebx),%ecx
477cec:	8b 40 04             	mov    0x4(%eax),%eax
477cef:	8b 70 08             	mov    0x8(%eax),%esi
477cf2:	e8 8f 55 f9 ff       	call   0x40d286
477cf7:	8d 4e ff             	lea    -0x1(%esi),%ecx
477cfa:	3b c1                	cmp    %ecx,%eax
477cfc:	0f 8d 93 00 00 00    	jge    0x477d95
477d02:	8d 4b 20             	lea    0x20(%ebx),%ecx
477d05:	e8 7c 55 f9 ff       	call   0x40d286
477d0a:	8d 4b 20             	lea    0x20(%ebx),%ecx
477d0d:	8d 70 01             	lea    0x1(%eax),%esi
477d10:	e8 0b af f9 ff       	call   0x412c20
477d15:	c7 43 2c 01 00 00 00 	movl   $0x1,0x2c(%ebx)
477d1c:	89 73 20             	mov    %esi,0x20(%ebx)
477d1f:	83 7b 1c 0f          	cmpl   $0xf,0x1c(%ebx)
477d23:	75 05                	jne    0x477d2a
477d25:	8b 73 10             	mov    0x10(%ebx),%esi
477d28:	eb 02                	jmp    0x477d2c
477d2a:	33 f6                	xor    %esi,%esi
477d2c:	8d 4b 20             	lea    0x20(%ebx),%ecx
477d2f:	e8 52 55 f9 ff       	call   0x40d286
477d34:	50                   	push   %eax
477d35:	8b ce                	mov    %esi,%ecx
477d37:	e8 ff c6 fc ff       	call   0x44443b
477d3c:	8b f0                	mov    %eax,%esi
477d3e:	6a 29                	push   $0x29
477d40:	8b ce                	mov    %esi,%ecx
477d42:	e8 a5 9e f8 ff       	call   0x401bec
477d47:	84 c0                	test   %al,%al
477d49:	74 3d                	je     0x477d88
477d4b:	8b ce                	mov    %esi,%ecx
477d4d:	e8 1a 16 f9 ff       	call   0x40936c
477d52:	8b 4e 08             	mov    0x8(%esi),%ecx
477d55:	ba 08 36 4b 00       	mov    $0x4b3608,%edx
477d5a:	e8 d0 6e fa ff       	call   0x41ec2f
477d5f:	84 c0                	test   %al,%al
477d61:	74 25                	je     0x477d88
477d63:	83 7b 1c 0f          	cmpl   $0xf,0x1c(%ebx)
477d67:	75 10                	jne    0x477d79
477d69:	8b 43 10             	mov    0x10(%ebx),%eax
477d6c:	50                   	push   %eax
477d6d:	8b cf                	mov    %edi,%ecx
477d6f:	e8 c8 20 fd ff       	call   0x449e3c
477d74:	e9 8e 65 f9 ff       	jmp    0x40e307
477d79:	33 c0                	xor    %eax,%eax
477d7b:	50                   	push   %eax
477d7c:	8b cf                	mov    %edi,%ecx
477d7e:	e8 b9 20 fd ff       	call   0x449e3c
477d83:	e9 7f 65 f9 ff       	jmp    0x40e307
477d88:	56                   	push   %esi
477d89:	8b cf                	mov    %edi,%ecx
477d8b:	e8 1e 5f f9 ff       	call   0x40dcae
477d90:	e9 72 65 f9 ff       	jmp    0x40e307
477d95:	8b cf                	mov    %edi,%ecx
477d97:	e8 84 ae f9 ff       	call   0x412c20
477d9c:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
477da3:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
477da9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
477dac:	e8 71 60 f9 ff       	call   0x40de22
477db1:	e9 be 64 f9 ff       	jmp    0x40e274
477db6:	8b 46 0c             	mov    0xc(%esi),%eax
477db9:	83 f8 01             	cmp    $0x1,%eax
477dbc:	74 09                	je     0x477dc7
477dbe:	83 f8 02             	cmp    $0x2,%eax
477dc1:	0f 85 71 65 f9 ff    	jne    0x40e338
477dc7:	8b ce                	mov    %esi,%ecx
477dc9:	e8 c5 51 f9 ff       	call   0x40cf93
477dce:	01 07                	add    %eax,(%edi)
477dd0:	11 57 04             	adc    %edx,0x4(%edi)
477dd3:	e9 f5 63 f9 ff       	jmp    0x40e1cd
477dd8:	83 7e 0c 0b          	cmpl   $0xb,0xc(%esi)
477ddc:	0f 85 56 65 f9 ff    	jne    0x40e338
477de2:	8b ce                	mov    %esi,%ecx
477de4:	e8 b5 37 fd ff       	call   0x44b59e
477de9:	8b 4d f8             	mov    -0x8(%ebp),%ecx
477dec:	8b f8                	mov    %eax,%edi
477dee:	8b 09                	mov    (%ecx),%ecx
477df0:	03 39                	add    (%ecx),%edi
477df2:	57                   	push   %edi
477df3:	e8 f2 76 fa ff       	call   0x41f4ea
477df8:	8b f0                	mov    %eax,%esi
477dfa:	8b 45 f8             	mov    -0x8(%ebp),%eax
477dfd:	83 c4 04             	add    $0x4,%esp
477e00:	8b 08                	mov    (%eax),%ecx
477e02:	ff 31                	push   (%ecx)
477e04:	ff 71 04             	push   0x4(%ecx)
477e07:	56                   	push   %esi
477e08:	e8 73 70 fa ff       	call   0x41ee80
477e0d:	83 c4 0c             	add    $0xc,%esp
477e10:	8d 4b 20             	lea    0x20(%ebx),%ecx
477e13:	e8 86 37 fd ff       	call   0x44b59e
477e18:	50                   	push   %eax
477e19:	51                   	push   %ecx
477e1a:	e8 3c 37 fd ff       	call   0x44b55b
477e1f:	83 c4 04             	add    $0x4,%esp
477e22:	50                   	push   %eax
477e23:	8b 45 f8             	mov    -0x8(%ebp),%eax
477e26:	8b 00                	mov    (%eax),%eax
477e28:	8b 00                	mov    (%eax),%eax
477e2a:	03 c6                	add    %esi,%eax
477e2c:	50                   	push   %eax
477e2d:	e8 4e 70 fa ff       	call   0x41ee80
477e32:	8b 45 f8             	mov    -0x8(%ebp),%eax
477e35:	83 c4 0c             	add    $0xc,%esp
477e38:	8b 00                	mov    (%eax),%eax