556c6c:	85 c0                	test   %eax,%eax
556c6e:	7e 3b                	jle    0x556cab
556c70:	50                   	push   %eax
556c71:	8b 46 14             	mov    0x14(%esi),%eax
556c74:	03 46 1c             	add    0x1c(%esi),%eax
556c77:	50                   	push   %eax
556c78:	ff 73 28             	push   0x28(%ebx)
556c7b:	e8 40 28 fa ff       	call   0x4f94c0
556c80:	53                   	push   %ebx
556c81:	8b f8                	mov    %eax,%edi
556c83:	e8 88 1e fa ff       	call   0x4f8b10
556c88:	83 c4 10             	add    $0x10,%esp
556c8b:	85 ff                	test   %edi,%edi
556c8d:	0f 8e 70 fd ff ff    	jle    0x556a03
556c93:	01 7e 1c             	add    %edi,0x1c(%esi)
556c96:	29 7e 18             	sub    %edi,0x18(%esi)
556c99:	6a 0f                	push   $0xf
556c9b:	53                   	push   %ebx
556c9c:	e8 5f 1e fa ff       	call   0x4f8b00
556ca1:	8b 46 18             	mov    0x18(%esi),%eax
556ca4:	83 c4 08             	add    $0x8,%esp
556ca7:	85 c0                	test   %eax,%eax
556ca9:	7f c5                	jg     0x556c70
556cab:	ff 74 24 24          	push   0x24(%esp)
556caf:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
556cb6:	ff 74 24 24          	push   0x24(%esp)
556cba:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
556cc1:	55                   	push   %ebp
556cc2:	ff 73 28             	push   0x28(%ebx)
556cc5:	e8 66 1e fa ff       	call   0x4f8b30
556cca:	83 c4 10             	add    $0x10,%esp
556ccd:	8b f8                	mov    %eax,%edi
556ccf:	5f                   	pop    %edi
556cd0:	5e                   	pop    %esi
556cd1:	5d                   	pop    %ebp
556cd2:	5b                   	pop    %ebx
556cd3:	59                   	pop    %ecx
556cd4:	c3                   	ret
556cd5:	8b 5c 24 24          	mov    0x24(%esp),%ebx
556cd9:	6a 00                	push   $0x0
556cdb:	ff 36                	push   (%esi)
556cdd:	6a 75                	push   $0x75
556cdf:	53                   	push   %ebx
556ce0:	e8 1b 24 fa ff       	call   0x4f9100
556ce5:	83 c4 10             	add    $0x10,%esp
556ce8:	85 c0                	test   %eax,%eax
556cea:	74 18                	je     0x556d04
556cec:	6a 01                	push   $0x1
556cee:	ff 76 04             	push   0x4(%esi)
556cf1:	6a 75                	push   $0x75
556cf3:	53                   	push   %ebx
556cf4:	e8 07 24 fa ff       	call   0x4f9100
556cf9:	83 c4 10             	add    $0x10,%esp
556cfc:	85 c0                	test   %eax,%eax
556cfe:	0f 85 ff fc ff ff    	jne    0x556a03
556d04:	33 ff                	xor    %edi,%edi
556d06:	8b c7                	mov    %edi,%eax
556d08:	5f                   	pop    %edi
556d09:	5e                   	pop    %esi
556d0a:	5d                   	pop    %ebp
556d0b:	5b                   	pop    %ebx
556d0c:	59                   	pop    %ecx
556d0d:	c3                   	ret
556d0e:	33 ff                	xor    %edi,%edi
556d10:	8d 6c 24 18          	lea    0x18(%esp),%ebp
556d14:	85 f6                	test   %esi,%esi
556d16:	0f 84 98 00 00 00    	je     0x556db4
556d1c:	39 7b 28             	cmp    %edi,0x28(%ebx)
556d1f:	0f 84 8f 00 00 00    	je     0x556db4
556d25:	6a 0f                	push   $0xf
556d27:	53                   	push   %ebx
556d28:	e8 d3 1d fa ff       	call   0x4f8b00
556d2d:	8b 4e 0c             	mov    0xc(%esi),%ecx
556d30:	83 c4 08             	add    $0x8,%esp
556d33:	8b 56 10             	mov    0x10(%esi),%edx
556d36:	85 c9                	test   %ecx,%ecx
556d38:	74 2d                	je     0x556d67
556d3a:	3b cf                	cmp    %edi,%ecx
556d3c:	8b c7                	mov    %edi,%eax
556d3e:	0f 4e c1             	cmovle %ecx,%eax
556d41:	50                   	push   %eax
556d42:	89 44 24 20          	mov    %eax,0x20(%esp)
556d46:	8b 46 08             	mov    0x8(%esi),%eax
556d49:	03 c2                	add    %edx,%eax
556d4b:	50                   	push   %eax
556d4c:	55                   	push   %ebp
556d4d:	e8 7e c0 07 00       	call   0x5d2dd0
556d52:	8b 44 24 28          	mov    0x28(%esp),%eax
556d56:	83 c4 0c             	add    $0xc,%esp
556d59:	01 46 10             	add    %eax,0x10(%esi)
556d5c:	29 46 0c             	sub    %eax,0xc(%esi)
556d5f:	3b f8                	cmp    %eax,%edi
556d61:	74 51                	je     0x556db4
556d63:	2b f8                	sub    %eax,%edi
556d65:	03 e8                	add    %eax,%ebp
556d67:	8b 06                	mov    (%esi),%eax
556d69:	3b f8                	cmp    %eax,%edi
556d6b:	7f 23                	jg     0x556d90
556d6d:	50                   	push   %eax
556d6e:	ff 76 08             	push   0x8(%esi)
556d71:	ff 73 28             	push   0x28(%ebx)
556d74:	e8 c7 26 fa ff       	call   0x4f9440
556d79:	8b c8                	mov    %eax,%ecx
556d7b:	83 c4 0c             	add    $0xc,%esp
556d7e:	85 c9                	test   %ecx,%ecx
556d80:	7e 29                	jle    0x556dab
556d82:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
556d89:	33 d2                	xor    %edx,%edx
556d8b:	89 4e 0c             	mov    %ecx,0xc(%esi)
556d8e:	eb a6                	jmp    0x556d36
556d90:	57                   	push   %edi
556d91:	55                   	push   %ebp
556d92:	ff 73 28             	push   0x28(%ebx)
556d95:	e8 a6 26 fa ff       	call   0x4f9440
556d9a:	83 c4 0c             	add    $0xc,%esp
556d9d:	85 c0                	test   %eax,%eax
556d9f:	7e 0a                	jle    0x556dab
556da1:	3b f8                	cmp    %eax,%edi
556da3:	74 0f                	je     0x556db4
556da5:	03 e8                	add    %eax,%ebp
556da7:	2b f8                	sub    %eax,%edi
556da9:	eb e5                	jmp    0x556d90
556dab:	53                   	push   %ebx
556dac:	e8 5f 1d fa ff       	call   0x4f8b10
556db1:	83 c4 04             	add    $0x4,%esp
556db4:	8b 7c 24 20          	mov    0x20(%esp),%edi
556db8:	3b 7e 0c             	cmp    0xc(%esi),%edi
556dbb:	8b 46 10             	mov    0x10(%esi),%eax
556dbe:	0f 4f 7e 0c          	cmovg  0xc(%esi),%edi
556dc2:	03 46 08             	add    0x8(%esi),%eax
556dc5:	57                   	push   %edi
556dc6:	50                   	push   %eax
556dc7:	ff 74 24 2c          	push   0x2c(%esp)
556dcb:	e8 00 c0 07 00       	call   0x5d2dd0
556dd0:	83 c4 0c             	add    $0xc,%esp
556dd3:	8b c7                	mov    %edi,%eax
556dd5:	5f                   	pop    %edi
556dd6:	5e                   	pop    %esi
556dd7:	5d                   	pop    %ebp
556dd8:	5b                   	pop    %ebx
556dd9:	59                   	pop    %ecx
556dda:	c3                   	ret
556ddb:	8b 43 28             	mov    0x28(%ebx),%eax
556dde:	85 c0                	test   %eax,%eax
556de0:	0f 85 09 fc ff ff    	jne    0x5569ef
556de6:	5f                   	pop    %edi
556de7:	5e                   	pop    %esi
556de8:	5d                   	pop    %ebp
556de9:	33 c0                	xor    %eax,%eax
556deb:	5b                   	pop    %ebx
556dec:	59                   	pop    %ecx
556ded:	c3                   	ret
556dee:	66 90                	xchg   %ax,%ax
556df0:	c8 69 55 00          	enter  $0x5569,$0x0
556df4:	0b 6a 55             	or     0x55(%edx),%ebp
556df7:	00 31                	add    %dh,(%ecx)
556df9:	6a 55                	push   $0x55
556dfb:	00 75 6a             	add    %dh,0x6a(%ebp)
556dfe:	55                   	push   %ebp
556dff:	00 49 6c             	add    %cl,0x6c(%ecx)
556e02:	55                   	push   %ebp
556e03:	00 d5                	add    %dl,%ch
556e05:	6c                   	insb   (%dx),%es:(%edi)
556e06:	55                   	push   %ebp
556e07:	00 69 6a             	add    %ch,0x6a(%ecx)
556e0a:	55                   	push   %ebp
556e0b:	00 0e                	add    %cl,(%esi)
556e0d:	6d                   	insl   (%dx),%es:(%edi)
556e0e:	55                   	push   %ebp
556e0f:	00 13                	add    %dl,(%ebx)
556e11:	6c                   	insb   (%dx),%es:(%edi)
556e12:	55                   	push   %ebp
556e13:	00 3c 6a             	add    %bh,(%edx,%ebp,2)
556e16:	55                   	push   %ebp
556e17:	00 de                	add    %bl,%dh
556e19:	6a 55                	push   $0x55
556e1b:	00 7a 6a             	add    %bh,0x6a(%edx)
556e1e:	55                   	push   %ebp
556e1f:	00 db                	add    %bl,%bl
556e21:	6d                   	insl   (%dx),%es:(%edi)
556e22:	55                   	push   %ebp
556e23:	00 00                	add    %al,(%eax)
556e25:	01 02                	add    %eax,(%edx)
556e27:	0c 0c                	or     $0xc,%al
556e29:	0c 0c                	or     $0xc,%al
556e2b:	0c 0c                	or     $0xc,%al
556e2d:	03 04 05 06 0c 0c 0c 	add    0xc0c0c06(,%eax,1),%eax
556e34:	0c 0c                	or     $0xc,%al
556e36:	0c 0c                	or     $0xc,%al
556e38:	0c 0c                	or     $0xc,%al
556e3a:	0c 0c                	or     $0xc,%al
556e3c:	0c 0c                	or     $0xc,%al
556e3e:	0c 0c                	or     $0xc,%al
556e40:	07                   	pop    %es
556e41:	0c 0c                	or     $0xc,%al
556e43:	0c 0c                	or     $0xc,%al
556e45:	0c 0c                	or     $0xc,%al
556e47:	0c 0c                	or     $0xc,%al
556e49:	0c 0c                	or     $0xc,%al
556e4b:	0c 0c                	or     $0xc,%al
556e4d:	0c 0c                	or     $0xc,%al
556e4f:	0c 0c                	or     $0xc,%al
556e51:	0c 0c                	or     $0xc,%al
556e53:	0c 0c                	or     $0xc,%al
556e55:	0c 0c                	or     $0xc,%al
556e57:	0c 0c                	or     $0xc,%al
556e59:	0c 0c                	or     $0xc,%al
556e5b:	0c 0c                	or     $0xc,%al
556e5d:	0c 0c                	or     $0xc,%al
556e5f:	0c 0c                	or     $0xc,%al
556e61:	0c 0c                	or     $0xc,%al
556e63:	0c 0c                	or     $0xc,%al
556e65:	0c 0c                	or     $0xc,%al
556e67:	0c 0c                	or     $0xc,%al
556e69:	0c 0c                	or     $0xc,%al
556e6b:	0c 0c                	or     $0xc,%al
556e6d:	0c 0c                	or     $0xc,%al
556e6f:	0c 0c                	or     $0xc,%al
556e71:	0c 0c                	or     $0xc,%al
556e73:	0c 0c                	or     $0xc,%al
556e75:	0c 0c                	or     $0xc,%al
556e77:	0c 0c                	or     $0xc,%al
556e79:	0c 0c                	or     $0xc,%al
556e7b:	0c 0c                	or     $0xc,%al
556e7d:	0c 0c                	or     $0xc,%al
556e7f:	0c 0c                	or     $0xc,%al
556e81:	0c 0c                	or     $0xc,%al
556e83:	0c 0c                	or     $0xc,%al
556e85:	0c 0c                	or     $0xc,%al
556e87:	0c 08                	or     $0x8,%al
556e89:	0c 0c                	or     $0xc,%al
556e8b:	0c 0c                	or     $0xc,%al
556e8d:	0c 0c                	or     $0xc,%al
556e8f:	0c 0c                	or     $0xc,%al
556e91:	0c 0c                	or     $0xc,%al
556e93:	0c 0c                	or     $0xc,%al
556e95:	0c 0c                	or     $0xc,%al
556e97:	09 0a                	or     %ecx,(%edx)
556e99:	0c 0c                	or     $0xc,%al
556e9b:	0c 0c                	or     $0xc,%al
556e9d:	0b cc                	or     %esp,%ecx
556e9f:	cc                   	int3
556ea0:	56                   	push   %esi
556ea1:	6a 31                	push   $0x31
556ea3:	68 70 ec 64 00       	push   $0x64ec70
556ea8:	6a 20                	push   $0x20
556eaa:	e8 91 9b f8 ff       	call   0x4e0a40
556eaf:	8b f0                	mov    %eax,%esi
556eb1:	83 c4 0c             	add    $0xc,%esp
556eb4:	85 f6                	test   %esi,%esi
556eb6:	74 31                	je     0x556ee9
556eb8:	6a 36                	push   $0x36
556eba:	68 70 ec 64 00       	push   $0x64ec70
556ebf:	68 00 10 00 00       	push   $0x1000
556ec4:	c7 06 00 10 00 00    	movl   $0x1000,(%esi)
556eca:	e8 81 98 f8 ff       	call   0x4e0750
556ecf:	83 c4 0c             	add    $0xc,%esp
556ed2:	89 46 08             	mov    %eax,0x8(%esi)
556ed5:	85 c0                	test   %eax,%eax
556ed7:	75 14                	jne    0x556eed
556ed9:	6a 38                	push   $0x38
556edb:	68 70 ec 64 00       	push   $0x64ec70
556ee0:	56                   	push   %esi
556ee1:	e8 9a 98 f8 ff       	call   0x4e0780
556ee6:	83 c4 0c             	add    $0xc,%esp
556ee9:	33 c0                	xor    %eax,%eax
556eeb:	5e                   	pop    %esi
556eec:	c3                   	ret
556eed:	6a 3c                	push   $0x3c
556eef:	68 70 ec 64 00       	push   $0x64ec70
556ef4:	68 00 10 00 00       	push   $0x1000
556ef9:	c7 46 04 00 10 00 00 	movl   $0x1000,0x4(%esi)
556f00:	e8 4b 98 f8 ff       	call   0x4e0750
556f05:	83 c4 0c             	add    $0xc,%esp
556f08:	89 46 14             	mov    %eax,0x14(%esi)
556f0b:	85 c0                	test   %eax,%eax
556f0d:	75 23                	jne    0x556f32
556f0f:	6a 3e                	push   $0x3e
556f11:	68 70 ec 64 00       	push   $0x64ec70
556f16:	ff 76 08             	push   0x8(%esi)
556f19:	e8 62 98 f8 ff       	call   0x4e0780
556f1e:	6a 3f                	push   $0x3f
556f20:	68 70 ec 64 00       	push   $0x64ec70
556f25:	56                   	push   %esi
556f26:	e8 55 98 f8 ff       	call   0x4e0780
556f2b:	83 c4 18             	add    $0x18,%esp
556f2e:	33 c0                	xor    %eax,%eax
556f30:	5e                   	pop    %esi
556f31:	c3                   	ret
556f32:	8b 44 24 08          	mov    0x8(%esp),%eax
556f36:	89 70 24             	mov    %esi,0x24(%eax)
556f39:	c7 40 10 01 00 00 00 	movl   $0x1,0x10(%eax)
556f40:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)
556f47:	b8 01 00 00 00       	mov    $0x1,%eax
556f4c:	5e                   	pop    %esi
556f4d:	c3                   	ret
556f4e:	cc                   	int3
556f4f:	cc                   	int3
556f50:	57                   	push   %edi
556f51:	8b 7c 24 08          	mov    0x8(%esp),%edi
556f55:	85 ff                	test   %edi,%edi
556f57:	75 04                	jne    0x556f5d
556f59:	33 c0                	xor    %eax,%eax
556f5b:	5f                   	pop    %edi
556f5c:	c3                   	ret
556f5d:	56                   	push   %esi
556f5e:	8b 77 24             	mov    0x24(%edi),%esi
556f61:	6a 50                	push   $0x50
556f63:	68 70 ec 64 00       	push   $0x64ec70
556f68:	ff 76 08             	push   0x8(%esi)
556f6b:	e8 10 98 f8 ff       	call   0x4e0780
556f70:	6a 51                	push   $0x51
556f72:	68 70 ec 64 00       	push   $0x64ec70
556f77:	ff 76 14             	push   0x14(%esi)
556f7a:	e8 01 98 f8 ff       	call   0x4e0780
556f7f:	6a 52                	push   $0x52
556f81:	68 70 ec 64 00       	push   $0x64ec70
556f86:	ff 77 24             	push   0x24(%edi)
556f89:	e8 f2 97 f8 ff       	call   0x4e0780
556f8e:	83 c4 24             	add    $0x24,%esp
556f91:	c7 47 24 00 00 00 00 	movl   $0x0,0x24(%edi)
556f98:	c7 47 10 00 00 00 00 	movl   $0x0,0x10(%edi)
556f9f:	b8 01 00 00 00       	mov    $0x1,%eax
556fa4:	c7 47 18 00 00 00 00 	movl   $0x0,0x18(%edi)
556fab:	5e                   	pop    %esi
556fac:	5f                   	pop    %edi
556fad:	c3                   	ret
556fae:	cc                   	int3
556faf:	cc                   	int3
556fb0:	8b 44 24 04          	mov    0x4(%esp),%eax
556fb4:	8b 40 28             	mov    0x28(%eax),%eax
556fb7:	85 c0                	test   %eax,%eax
556fb9:	75 01                	jne    0x556fbc
556fbb:	c3                   	ret
556fbc:	89 44 24 04          	mov    %eax,0x4(%esp)
556fc0:	e9 4b 1a fa ff       	jmp    0x4f8a10
556fc5:	cc                   	int3
556fc6:	cc                   	int3
556fc7:	cc                   	int3
556fc8:	cc                   	int3
556fc9:	cc                   	int3
556fca:	cc                   	int3
556fcb:	cc                   	int3
556fcc:	cc                   	int3
556fcd:	cc                   	int3
556fce:	cc                   	int3
556fcf:	cc                   	int3
556fd0:	b8 38 ec 64 00       	mov    $0x64ec38,%eax
556fd5:	c3                   	ret
556fd6:	cc                   	int3