407b81:	ff 15 24 21 41 00    	call   *0x412124
407b87:	85 c0                	test   %eax,%eax
407b89:	78 2f                	js     0x407bba
407b8b:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407b8f:	eb 16                	jmp    0x407ba7
407b91:	8b 45 e4             	mov    -0x1c(%ebp),%eax
407b94:	8b 40 04             	mov    0x4(%eax),%eax
407b97:	89 45 ec             	mov    %eax,-0x14(%ebp)
407b9a:	b8 a0 7b 40 00       	mov    $0x407ba0,%eax
407b9f:	c3                   	ret
407ba0:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407ba4:	8b 75 ec             	mov    -0x14(%ebp),%esi
407ba7:	8d 45 d4             	lea    -0x2c(%ebp),%eax
407baa:	50                   	push   %eax
407bab:	eb c7                	jmp    0x407b74
407bad:	b8 08 10 04 80       	mov    $0x80041008,%eax
407bb2:	e8 42 77 00 00       	call   0x40f2f9
407bb7:	c2 04 00             	ret    $0x4
407bba:	8b c8                	mov    %eax,%ecx
407bbc:	e8 60 0b 00 00       	call   0x408721
407bc1:	cc                   	int3
407bc2:	6a 1c                	push   $0x1c
407bc4:	b8 3c fb 40 00       	mov    $0x40fb3c,%eax
407bc9:	e8 81 77 00 00       	call   0x40f34f
407bce:	8b fa                	mov    %edx,%edi
407bd0:	8b d9                	mov    %ecx,%ebx
407bd2:	8d 45 d8             	lea    -0x28(%ebp),%eax
407bd5:	50                   	push   %eax
407bd6:	ff 15 18 21 41 00    	call   *0x412118
407bdc:	33 f6                	xor    %esi,%esi
407bde:	89 75 fc             	mov    %esi,-0x4(%ebp)
407be1:	8b 4d 08             	mov    0x8(%ebp),%ecx
407be4:	ff 15 00 22 41 00    	call   *0x412200
407bea:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
407bee:	ff 75 0c             	push   0xc(%ebp)
407bf1:	8b 4d 08             	mov    0x8(%ebp),%ecx
407bf4:	ff 15 2c 22 41 00    	call   *0x41222c
407bfa:	85 db                	test   %ebx,%ebx
407bfc:	74 67                	je     0x407c65
407bfe:	85 ff                	test   %edi,%edi
407c00:	74 63                	je     0x407c65
407c02:	8d 45 d8             	lea    -0x28(%ebp),%eax
407c05:	50                   	push   %eax
407c06:	8b d7                	mov    %edi,%edx
407c08:	8b cb                	mov    %ebx,%ecx
407c0a:	e8 ee fe ff ff       	call   0x407afd
407c0f:	85 c0                	test   %eax,%eax
407c11:	0f 88 92 00 00 00    	js     0x407ca9
407c17:	6a 08                	push   $0x8
407c19:	58                   	pop    %eax
407c1a:	66 3b 45 d8          	cmp    -0x28(%ebp),%ax
407c1e:	75 2e                	jne    0x407c4e
407c20:	8d 45 d8             	lea    -0x28(%ebp),%eax
407c23:	50                   	push   %eax
407c24:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407c27:	e8 0f 08 00 00       	call   0x40843b
407c2c:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
407c30:	8b 00                	mov    (%eax),%eax
407c32:	85 c0                	test   %eax,%eax
407c34:	74 02                	je     0x407c38
407c36:	8b 30                	mov    (%eax),%esi
407c38:	56                   	push   %esi
407c39:	8b 4d 08             	mov    0x8(%ebp),%ecx
407c3c:	ff 15 2c 22 41 00    	call   *0x41222c
407c42:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
407c46:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407c49:	e8 01 dd ff ff       	call   0x40594f
407c4e:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407c52:	8d 45 d8             	lea    -0x28(%ebp),%eax
407c55:	50                   	push   %eax
407c56:	ff 15 14 21 41 00    	call   *0x412114
407c5c:	85 c0                	test   %eax,%eax
407c5e:	78 49                	js     0x407ca9
407c60:	33 c0                	xor    %eax,%eax
407c62:	40                   	inc    %eax
407c63:	eb 2c                	jmp    0x407c91
407c65:	b9 08 10 04 80       	mov    $0x80041008,%ecx
407c6a:	eb 3f                	jmp    0x407cab
407c6c:	8b 45 e8             	mov    -0x18(%ebp),%eax
407c6f:	8b 48 04             	mov    0x4(%eax),%ecx
407c72:	e8 93 fc ff ff       	call   0x40790a
407c77:	b8 7d 7c 40 00       	mov    $0x407c7d,%eax
407c7c:	c3                   	ret
407c7d:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407c81:	8d 45 d8             	lea    -0x28(%ebp),%eax
407c84:	50                   	push   %eax
407c85:	ff 15 14 21 41 00    	call   *0x412114
407c8b:	85 c0                	test   %eax,%eax
407c8d:	78 1a                	js     0x407ca9
407c8f:	33 c0                	xor    %eax,%eax
407c91:	e8 63 76 00 00       	call   0x40f2f9
407c96:	c2 08 00             	ret    $0x8
407c99:	b9 06 10 04 80       	mov    $0x80041006,%ecx
407c9e:	e8 67 fc ff ff       	call   0x40790a
407ca3:	b8 7d 7c 40 00       	mov    $0x407c7d,%eax
407ca8:	c3                   	ret
407ca9:	8b c8                	mov    %eax,%ecx
407cab:	e8 71 0a 00 00       	call   0x408721
407cb0:	cc                   	int3
407cb1:	6a 18                	push   $0x18
407cb3:	b8 5f fb 40 00       	mov    $0x40fb5f,%eax
407cb8:	e8 92 76 00 00       	call   0x40f34f
407cbd:	8b fa                	mov    %edx,%edi
407cbf:	8b d9                	mov    %ecx,%ebx
407cc1:	8d 45 dc             	lea    -0x24(%ebp),%eax
407cc4:	50                   	push   %eax
407cc5:	ff 15 18 21 41 00    	call   *0x412118
407ccb:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407ccf:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
407cd3:	8b 75 08             	mov    0x8(%ebp),%esi
407cd6:	83 26 00             	andl   $0x0,(%esi)
407cd9:	85 db                	test   %ebx,%ebx
407cdb:	74 60                	je     0x407d3d
407cdd:	85 ff                	test   %edi,%edi
407cdf:	74 5c                	je     0x407d3d
407ce1:	8d 45 dc             	lea    -0x24(%ebp),%eax
407ce4:	50                   	push   %eax
407ce5:	8b d7                	mov    %edi,%edx
407ce7:	8b cb                	mov    %ebx,%ecx
407ce9:	e8 0f fe ff ff       	call   0x407afd
407cee:	85 c0                	test   %eax,%eax
407cf0:	78 7f                	js     0x407d71
407cf2:	0f b7 45 dc          	movzwl -0x24(%ebp),%eax
407cf6:	48                   	dec    %eax
407cf7:	83 e8 01             	sub    $0x1,%eax
407cfa:	74 24                	je     0x407d20
407cfc:	83 e8 01             	sub    $0x1,%eax
407cff:	74 14                	je     0x407d15
407d01:	83 e8 0f             	sub    $0xf,%eax
407d04:	74 14                	je     0x407d1a
407d06:	83 e8 01             	sub    $0x1,%eax
407d09:	74 0a                	je     0x407d15
407d0b:	83 e8 03             	sub    $0x3,%eax
407d0e:	74 05                	je     0x407d15
407d10:	83 e8 01             	sub    $0x1,%eax
407d13:	75 11                	jne    0x407d26
407d15:	8b 45 e4             	mov    -0x1c(%ebp),%eax
407d18:	eb 0a                	jmp    0x407d24
407d1a:	0f b7 45 e4          	movzwl -0x1c(%ebp),%eax
407d1e:	eb 04                	jmp    0x407d24
407d20:	0f bf 45 e4          	movswl -0x1c(%ebp),%eax
407d24:	89 06                	mov    %eax,(%esi)
407d26:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407d2a:	8d 45 dc             	lea    -0x24(%ebp),%eax
407d2d:	50                   	push   %eax
407d2e:	ff 15 14 21 41 00    	call   *0x412114
407d34:	85 c0                	test   %eax,%eax
407d36:	78 39                	js     0x407d71
407d38:	33 c0                	xor    %eax,%eax
407d3a:	40                   	inc    %eax
407d3b:	eb 2c                	jmp    0x407d69
407d3d:	b9 08 10 04 80       	mov    $0x80041008,%ecx
407d42:	eb 2f                	jmp    0x407d73
407d44:	8b 45 ec             	mov    -0x14(%ebp),%eax
407d47:	8b 48 04             	mov    0x4(%eax),%ecx
407d4a:	e8 bb fb ff ff       	call   0x40790a
407d4f:	b8 55 7d 40 00       	mov    $0x407d55,%eax
407d54:	c3                   	ret
407d55:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407d59:	8d 45 dc             	lea    -0x24(%ebp),%eax
407d5c:	50                   	push   %eax
407d5d:	ff 15 14 21 41 00    	call   *0x412114
407d63:	85 c0                	test   %eax,%eax
407d65:	78 0a                	js     0x407d71
407d67:	33 c0                	xor    %eax,%eax
407d69:	e8 8b 75 00 00       	call   0x40f2f9
407d6e:	c2 08 00             	ret    $0x8
407d71:	8b c8                	mov    %eax,%ecx
407d73:	e8 a9 09 00 00       	call   0x408721
407d78:	cc                   	int3
407d79:	6a 08                	push   $0x8
407d7b:	b8 83 fb 40 00       	mov    $0x40fb83,%eax
407d80:	e8 ca 75 00 00       	call   0x40f34f
407d85:	8b fa                	mov    %edx,%edi
407d87:	8b d9                	mov    %ecx,%ebx
407d89:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407d8c:	ff 15 f8 21 41 00    	call   *0x4121f8
407d92:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407d96:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407d99:	ff 15 00 22 41 00    	call   *0x412200
407d9f:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
407da3:	8b 75 08             	mov    0x8(%ebp),%esi
407da6:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
407dac:	83 66 04 00          	andl   $0x0,0x4(%esi)
407db0:	85 db                	test   %ebx,%ebx
407db2:	74 3c                	je     0x407df0
407db4:	85 ff                	test   %edi,%edi
407db6:	74 38                	je     0x407df0
407db8:	68 44 17 40 00       	push   $0x401744
407dbd:	8d 45 ec             	lea    -0x14(%ebp),%eax
407dc0:	50                   	push   %eax
407dc1:	8b d7                	mov    %edi,%edx
407dc3:	8b cb                	mov    %ebx,%ecx
407dc5:	e8 f8 fd ff ff       	call   0x407bc2
407dca:	85 c0                	test   %eax,%eax
407dcc:	74 2c                	je     0x407dfa
407dce:	ff 75 ec             	push   -0x14(%ebp)
407dd1:	ff 15 b8 22 41 00    	call   *0x4122b8
407dd7:	59                   	pop    %ecx
407dd8:	89 06                	mov    %eax,(%esi)
407dda:	89 56 04             	mov    %edx,0x4(%esi)
407ddd:	33 c0                	xor    %eax,%eax
407ddf:	39 06                	cmp    %eax,(%esi)
407de1:	75 2e                	jne    0x407e11
407de3:	3b d0                	cmp    %eax,%edx
407de5:	75 2a                	jne    0x407e11
407de7:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
407ded:	89 46 04             	mov    %eax,0x4(%esi)
407df0:	b9 08 10 04 80       	mov    $0x80041008,%ecx
407df5:	e8 10 fb ff ff       	call   0x40790a
407dfa:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407dfe:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407e01:	ff 15 30 22 41 00    	call   *0x412230
407e07:	33 c0                	xor    %eax,%eax
407e09:	e8 eb 74 00 00       	call   0x40f2f9
407e0e:	c2 04 00             	ret    $0x4
407e11:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407e15:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407e18:	ff 15 30 22 41 00    	call   *0x412230
407e1e:	33 c0                	xor    %eax,%eax
407e20:	40                   	inc    %eax
407e21:	eb e6                	jmp    0x407e09
407e23:	b9 06 10 04 80       	mov    $0x80041006,%ecx
407e28:	e8 dd fa ff ff       	call   0x40790a
407e2d:	b8 fa 7d 40 00       	mov    $0x407dfa,%eax
407e32:	c3                   	ret
407e33:	6a 28                	push   $0x28
407e35:	b8 dc fb 40 00       	mov    $0x40fbdc,%eax
407e3a:	e8 10 75 00 00       	call   0x40f34f
407e3f:	89 55 d4             	mov    %edx,-0x2c(%ebp)
407e42:	8b d9                	mov    %ecx,%ebx
407e44:	33 ff                	xor    %edi,%edi
407e46:	89 7d e0             	mov    %edi,-0x20(%ebp)
407e49:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407e4c:	ff 15 f8 21 41 00    	call   *0x4121f8
407e52:	89 7d fc             	mov    %edi,-0x4(%ebp)
407e55:	89 7d e4             	mov    %edi,-0x1c(%ebp)
407e58:	89 7d e8             	mov    %edi,-0x18(%ebp)
407e5b:	85 db                	test   %ebx,%ebx
407e5d:	75 1f                	jne    0x407e7e
407e5f:	b9 08 10 04 80       	mov    $0x80041008,%ecx
407e64:	e8 a1 fa ff ff       	call   0x40790a
407e69:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
407e6d:	8d 4d ec             	lea    -0x14(%ebp),%ecx
407e70:	ff 15 30 22 41 00    	call   *0x412230
407e76:	33 c0                	xor    %eax,%eax
407e78:	e8 7c 74 00 00       	call   0x40f2f9
407e7d:	c3                   	ret
407e7e:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
407e82:	68 48 17 40 00       	push   $0x401748
407e87:	8d 4d d8             	lea    -0x28(%ebp),%ecx
407e8a:	e8 4a db ff ff       	call   0x4059d9
407e8f:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
407e93:	8b 00                	mov    (%eax),%eax
407e95:	85 c0                	test   %eax,%eax
407e97:	74 04                	je     0x407e9d
407e99:	8b 00                	mov    (%eax),%eax
407e9b:	eb 02                	jmp    0x407e9f
407e9d:	8b c7                	mov    %edi,%eax
407e9f:	8b 33                	mov    (%ebx),%esi
407ea1:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407ea4:	51                   	push   %ecx
407ea5:	57                   	push   %edi
407ea6:	6a 30                	push   $0x30
407ea8:	50                   	push   %eax
407ea9:	53                   	push   %ebx
407eaa:	8b 4e 48             	mov    0x48(%esi),%ecx
407ead:	ff 15 20 23 41 00    	call   *0x412320
407eb3:	ff 56 48             	call   *0x48(%esi)
407eb6:	8b f0                	mov    %eax,%esi
407eb8:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
407ebc:	8d 4d d8             	lea    -0x28(%ebp),%ecx
407ebf:	e8 8b da ff ff       	call   0x40594f
407ec4:	85 f6                	test   %esi,%esi
407ec6:	0f 88 e3 02 00 00    	js     0x4081af
407ecc:	8b 55 d4             	mov    -0x2c(%ebp),%edx
407ecf:	8b 4d e8             	mov    -0x18(%ebp),%ecx
407ed2:	e8 f2 f6 ff ff       	call   0x4075c9
407ed7:	85 c0                	test   %eax,%eax
407ed9:	79 07                	jns    0x407ee2
407edb:	8b c8                	mov    %eax,%ecx
407edd:	e9 cf 02 00 00       	jmp    0x4081b1
407ee2:	8b 45 e8             	mov    -0x18(%ebp),%eax
407ee5:	8b 30                	mov    (%eax),%esi
407ee7:	8d 4d e0             	lea    -0x20(%ebp),%ecx
407eea:	51                   	push   %ecx
407eeb:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
407eee:	51                   	push   %ecx
407eef:	6a 01                	push   $0x1
407ef1:	6a ff                	push   $0xffffffff
407ef3:	50                   	push   %eax
407ef4:	8b 4e 10             	mov    0x10(%esi),%ecx
407ef7:	ff 15 20 23 41 00    	call   *0x412320
407efd:	ff 56 10             	call   *0x10(%esi)
407f00:	85 c0                	test   %eax,%eax
407f02:	78 d7                	js     0x407edb
407f04:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
407f08:	75 45                	jne    0x407f4f
407f0a:	33 c9                	xor    %ecx,%ecx
407f0c:	41                   	inc    %ecx
407f0d:	e8 f8 f9 ff ff       	call   0x40790a
407f12:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
407f15:	85 c9                	test   %ecx,%ecx
407f17:	74 13                	je     0x407f2c
407f19:	8b 01                	mov    (%ecx),%eax
407f1b:	51                   	push   %ecx
407f1c:	8b 70 08             	mov    0x8(%eax),%esi
407f1f:	8b ce                	mov    %esi,%ecx
407f21:	ff 15 20 23 41 00    	call   *0x412320
407f27:	ff d6                	call   *%esi
407f29:	89 7d e4             	mov    %edi,-0x1c(%ebp)
407f2c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
407f2f:	85 c9                	test   %ecx,%ecx
407f31:	0f 84 32 ff ff ff    	je     0x407e69
407f37:	8b 01                	mov    (%ecx),%eax
407f39:	51                   	push   %ecx
407f3a:	8b 70 08             	mov    0x8(%eax),%esi
407f3d:	8b ce                	mov    %esi,%ecx
407f3f:	ff 15 20 23 41 00    	call   *0x412320
407f45:	ff d6                	call   *%esi
407f47:	89 7d e8             	mov    %edi,-0x18(%ebp)
407f4a:	e9 1a ff ff ff       	jmp    0x407e69
407f4f:	b9 8d 13 00 00       	mov    $0x138d,%ecx
407f54:	e8 f8 1a 00 00       	call   0x409a51
407f59:	50                   	push   %eax
407f5a:	8d 45 ec             	lea    -0x14(%ebp),%eax
407f5d:	50                   	push   %eax
407f5e:	ba 74 17 40 00       	mov    $0x401774,%edx
407f63:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
407f66:	e8 57 fc ff ff       	call   0x407bc2
407f6b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
407f6e:	85 c0                	test   %eax,%eax
407f70:	74 a3                	je     0x407f15
407f72:	85 c9                	test   %ecx,%ecx
407f74:	74 13                	je     0x407f89
407f76:	8b 01                	mov    (%ecx),%eax
407f78:	51                   	push   %ecx
407f79:	8b 70 08             	mov    0x8(%eax),%esi
407f7c:	8b ce                	mov    %esi,%ecx
407f7e:	ff 15 20 23 41 00    	call   *0x412320
407f84:	ff d6                	call   *%esi
407f86:	89 7d e4             	mov    %edi,-0x1c(%ebp)
407f89:	8b 4d e8             	mov    -0x18(%ebp),%ecx
407f8c:	85 c9                	test   %ecx,%ecx
407f8e:	74 13                	je     0x407fa3
407f90:	8b 01                	mov    (%ecx),%eax
407f92:	51                   	push   %ecx
407f93:	8b 70 08             	mov    0x8(%eax),%esi
407f96:	8b ce                	mov    %esi,%ecx
407f98:	ff 15 20 23 41 00    	call   *0x412320