51a9ba:	ff 74 24 1c          	push   0x1c(%esp)
51a9be:	6a 00                	push   $0x0
51a9c0:	e8 eb fc ff ff       	call   0x51a6b0
51a9c5:	83 c4 14             	add    $0x14,%esp
51a9c8:	8b d8                	mov    %eax,%ebx
51a9ca:	56                   	push   %esi
51a9cb:	e8 00 d1 fc ff       	call   0x4e7ad0
51a9d0:	83 c4 04             	add    $0x4,%esp
51a9d3:	8b c3                	mov    %ebx,%eax
51a9d5:	5f                   	pop    %edi
51a9d6:	5e                   	pop    %esi
51a9d7:	5b                   	pop    %ebx
51a9d8:	c3                   	ret
51a9d9:	cc                   	int3
51a9da:	cc                   	int3
51a9db:	cc                   	int3
51a9dc:	cc                   	int3
51a9dd:	cc                   	int3
51a9de:	cc                   	int3
51a9df:	cc                   	int3
51a9e0:	56                   	push   %esi
51a9e1:	6a 33                	push   $0x33
51a9e3:	68 84 07 64 00       	push   $0x640784
51a9e8:	6a 18                	push   $0x18
51a9ea:	e8 51 60 fc ff       	call   0x4e0a40
51a9ef:	8b f0                	mov    %eax,%esi
51a9f1:	83 c4 0c             	add    $0xc,%esp
51a9f4:	85 f6                	test   %esi,%esi
51a9f6:	75 02                	jne    0x51a9fa
51a9f8:	5e                   	pop    %esi
51a9f9:	c3                   	ret
51a9fa:	57                   	push   %edi
51a9fb:	6a 01                	push   $0x1
51a9fd:	56                   	push   %esi
51a9fe:	e8 7d 5d fd ff       	call   0x4f0780
51aa03:	ff 74 24 28          	push   0x28(%esp)
51aa07:	ff 74 24 28          	push   0x28(%esp)
51aa0b:	56                   	push   %esi
51aa0c:	e8 0f 02 00 00       	call   0x51ac20
51aa11:	83 c4 14             	add    $0x14,%esp
51aa14:	85 c0                	test   %eax,%eax
51aa16:	74 36                	je     0x51aa4e
51aa18:	8b 44 24 10          	mov    0x10(%esp),%eax
51aa1c:	85 c0                	test   %eax,%eax
51aa1e:	74 12                	je     0x51aa32
51aa20:	50                   	push   %eax
51aa21:	ff 74 24 10          	push   0x10(%esp)
51aa25:	8b 46 14             	mov    0x14(%esi),%eax
51aa28:	56                   	push   %esi
51aa29:	ff d0                	call   *%eax
51aa2b:	83 c4 0c             	add    $0xc,%esp
51aa2e:	85 c0                	test   %eax,%eax
51aa30:	74 1c                	je     0x51aa4e
51aa32:	ff 74 24 18          	push   0x18(%esp)
51aa36:	ff 74 24 18          	push   0x18(%esp)
51aa3a:	56                   	push   %esi
51aa3b:	e8 40 01 00 00       	call   0x51ab80
51aa40:	83 c4 0c             	add    $0xc,%esp
51aa43:	85 c0                	test   %eax,%eax
51aa45:	74 07                	je     0x51aa4e
51aa47:	bf 01 00 00 00       	mov    $0x1,%edi
51aa4c:	eb 02                	jmp    0x51aa50
51aa4e:	33 ff                	xor    %edi,%edi
51aa50:	56                   	push   %esi
51aa51:	e8 da 06 00 00       	call   0x51b130
51aa56:	6a 39                	push   $0x39
51aa58:	68 84 07 64 00       	push   $0x640784
51aa5d:	56                   	push   %esi
51aa5e:	e8 1d 5d fc ff       	call   0x4e0780
51aa63:	83 c4 10             	add    $0x10,%esp
51aa66:	8b c7                	mov    %edi,%eax
51aa68:	5f                   	pop    %edi
51aa69:	5e                   	pop    %esi
51aa6a:	c3                   	ret
51aa6b:	cc                   	int3
51aa6c:	cc                   	int3
51aa6d:	cc                   	int3
51aa6e:	cc                   	int3
51aa6f:	cc                   	int3
51aa70:	56                   	push   %esi
51aa71:	8b 74 24 08          	mov    0x8(%esp),%esi
51aa75:	57                   	push   %edi
51aa76:	8b 06                	mov    (%esi),%eax
51aa78:	83 78 08 40          	cmpl   $0x40,0x8(%eax)
51aa7c:	7e 19                	jle    0x51aa97
51aa7e:	68 ad 00 00 00       	push   $0xad
51aa83:	68 84 07 64 00       	push   $0x640784
51aa88:	68 98 07 64 00       	push   $0x640798
51aa8d:	e8 9e 7a fd ff       	call   0x4f2530
51aa92:	8b 06                	mov    (%esi),%eax
51aa94:	83 c4 0c             	add    $0xc,%esp
51aa97:	ff 74 24 10          	push   0x10(%esp)
51aa9b:	8b 40 18             	mov    0x18(%eax),%eax
51aa9e:	56                   	push   %esi
51aa9f:	ff d0                	call   *%eax
51aaa1:	8b 54 24 1c          	mov    0x1c(%esp),%edx
51aaa5:	83 c4 08             	add    $0x8,%esp
51aaa8:	8b f8                	mov    %eax,%edi
51aaaa:	85 d2                	test   %edx,%edx
51aaac:	74 07                	je     0x51aab5
51aaae:	8b 0e                	mov    (%esi),%ecx
51aab0:	8b 49 08             	mov    0x8(%ecx),%ecx
51aab3:	89 0a                	mov    %ecx,(%edx)
51aab5:	8b 06                	mov    (%esi),%eax
51aab7:	8b 48 20             	mov    0x20(%eax),%ecx
51aaba:	85 c9                	test   %ecx,%ecx
51aabc:	74 10                	je     0x51aace
51aabe:	56                   	push   %esi
51aabf:	ff d1                	call   *%ecx
51aac1:	6a 02                	push   $0x2
51aac3:	56                   	push   %esi
51aac4:	e8 b7 5c fd ff       	call   0x4f0780
51aac9:	8b 06                	mov    (%esi),%eax
51aacb:	83 c4 0c             	add    $0xc,%esp
51aace:	ff 70 28             	push   0x28(%eax)
51aad1:	ff 76 0c             	push   0xc(%esi)
51aad4:	e8 07 6f ee ff       	call   0x4019e0
51aad9:	56                   	push   %esi
51aada:	e8 51 06 00 00       	call   0x51b130
51aadf:	83 c4 0c             	add    $0xc,%esp
51aae2:	8b c7                	mov    %edi,%eax
51aae4:	5f                   	pop    %edi
51aae5:	5e                   	pop    %esi
51aae6:	c3                   	ret
51aae7:	cc                   	int3
51aae8:	cc                   	int3
51aae9:	cc                   	int3
51aaea:	cc                   	int3
51aaeb:	cc                   	int3
51aaec:	cc                   	int3
51aaed:	cc                   	int3
51aaee:	cc                   	int3
51aaef:	cc                   	int3
51aaf0:	56                   	push   %esi
51aaf1:	8b 74 24 08          	mov    0x8(%esp),%esi
51aaf5:	8b 06                	mov    (%esi),%eax
51aaf7:	f6 40 0c 02          	testb  $0x2,0xc(%eax)
51aafb:	74 5c                	je     0x51ab59
51aafd:	8b 4c 24 10          	mov    0x10(%esp),%ecx
51ab01:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
51ab07:	77 50                	ja     0x51ab59
51ab09:	8b 40 2c             	mov    0x2c(%eax),%eax
51ab0c:	6a 00                	push   $0x0
51ab0e:	51                   	push   %ecx
51ab0f:	6a 03                	push   $0x3
51ab11:	56                   	push   %esi
51ab12:	ff d0                	call   *%eax
51ab14:	83 c4 10             	add    $0x10,%esp
51ab17:	85 c0                	test   %eax,%eax
51ab19:	74 3e                	je     0x51ab59
51ab1b:	8b 06                	mov    (%esi),%eax
51ab1d:	57                   	push   %edi
51ab1e:	ff 74 24 10          	push   0x10(%esp)
51ab22:	8b 40 18             	mov    0x18(%eax),%eax
51ab25:	56                   	push   %esi
51ab26:	ff d0                	call   *%eax
51ab28:	8b f8                	mov    %eax,%edi
51ab2a:	83 c4 08             	add    $0x8,%esp
51ab2d:	8b 06                	mov    (%esi),%eax
51ab2f:	8b 48 20             	mov    0x20(%eax),%ecx
51ab32:	85 c9                	test   %ecx,%ecx
51ab34:	74 10                	je     0x51ab46
51ab36:	56                   	push   %esi
51ab37:	ff d1                	call   *%ecx
51ab39:	6a 02                	push   $0x2
51ab3b:	56                   	push   %esi
51ab3c:	e8 3f 5c fd ff       	call   0x4f0780
51ab41:	8b 06                	mov    (%esi),%eax
51ab43:	83 c4 0c             	add    $0xc,%esp
51ab46:	ff 70 28             	push   0x28(%eax)
51ab49:	ff 76 0c             	push   0xc(%esi)
51ab4c:	e8 8f 6e ee ff       	call   0x4019e0
51ab51:	83 c4 08             	add    $0x8,%esp
51ab54:	8b c7                	mov    %edi,%eax
51ab56:	5f                   	pop    %edi
51ab57:	5e                   	pop    %esi
51ab58:	c3                   	ret
51ab59:	68 c8 00 00 00       	push   $0xc8
51ab5e:	68 84 07 64 00       	push   $0x640784
51ab63:	68 b2 00 00 00       	push   $0xb2
51ab68:	68 ae 00 00 00       	push   $0xae
51ab6d:	6a 06                	push   $0x6
51ab6f:	e8 0c e4 fb ff       	call   0x4d8f80
51ab74:	83 c4 14             	add    $0x14,%esp
51ab77:	33 c0                	xor    %eax,%eax
51ab79:	5e                   	pop    %esi
51ab7a:	c3                   	ret
51ab7b:	cc                   	int3
51ab7c:	cc                   	int3
51ab7d:	cc                   	int3
51ab7e:	cc                   	int3
51ab7f:	cc                   	int3
51ab80:	56                   	push   %esi
51ab81:	8b 74 24 08          	mov    0x8(%esp),%esi
51ab85:	57                   	push   %edi
51ab86:	8b 06                	mov    (%esi),%eax
51ab88:	83 78 08 40          	cmpl   $0x40,0x8(%eax)
51ab8c:	7e 19                	jle    0x51aba7
51ab8e:	68 ad 00 00 00       	push   $0xad
51ab93:	68 84 07 64 00       	push   $0x640784
51ab98:	68 98 07 64 00       	push   $0x640798
51ab9d:	e8 8e 79 fd ff       	call   0x4f2530
51aba2:	8b 06                	mov    (%esi),%eax
51aba4:	83 c4 0c             	add    $0xc,%esp
51aba7:	ff 74 24 10          	push   0x10(%esp)
51abab:	8b 40 18             	mov    0x18(%eax),%eax
51abae:	56                   	push   %esi
51abaf:	ff d0                	call   *%eax
51abb1:	8b 54 24 1c          	mov    0x1c(%esp),%edx
51abb5:	83 c4 08             	add    $0x8,%esp
51abb8:	8b f8                	mov    %eax,%edi
51abba:	85 d2                	test   %edx,%edx
51abbc:	74 07                	je     0x51abc5
51abbe:	8b 0e                	mov    (%esi),%ecx
51abc0:	8b 49 08             	mov    0x8(%ecx),%ecx
51abc3:	89 0a                	mov    %ecx,(%edx)
51abc5:	8b 06                	mov    (%esi),%eax
51abc7:	8b 48 20             	mov    0x20(%eax),%ecx
51abca:	85 c9                	test   %ecx,%ecx
51abcc:	74 10                	je     0x51abde
51abce:	56                   	push   %esi
51abcf:	ff d1                	call   *%ecx
51abd1:	6a 02                	push   $0x2
51abd3:	56                   	push   %esi
51abd4:	e8 a7 5b fd ff       	call   0x4f0780
51abd9:	8b 06                	mov    (%esi),%eax
51abdb:	83 c4 0c             	add    $0xc,%esp
51abde:	ff 70 28             	push   0x28(%eax)
51abe1:	ff 76 0c             	push   0xc(%esi)
51abe4:	e8 f7 6d ee ff       	call   0x4019e0
51abe9:	83 c4 08             	add    $0x8,%esp
51abec:	8b c7                	mov    %edi,%eax
51abee:	5f                   	pop    %edi
51abef:	5e                   	pop    %esi
51abf0:	c3                   	ret
51abf1:	cc                   	int3
51abf2:	cc                   	int3
51abf3:	cc                   	int3
51abf4:	cc                   	int3
51abf5:	cc                   	int3
51abf6:	cc                   	int3
51abf7:	cc                   	int3
51abf8:	cc                   	int3
51abf9:	cc                   	int3
51abfa:	cc                   	int3
51abfb:	cc                   	int3
51abfc:	cc                   	int3
51abfd:	cc                   	int3
51abfe:	cc                   	int3
51abff:	cc                   	int3
51ac00:	ff 74 24 04          	push   0x4(%esp)
51ac04:	e8 27 05 00 00       	call   0x51b130
51ac09:	6a 00                	push   $0x0
51ac0b:	ff 74 24 10          	push   0x10(%esp)
51ac0f:	ff 74 24 10          	push   0x10(%esp)
51ac13:	e8 08 00 00 00       	call   0x51ac20
51ac18:	83 c4 10             	add    $0x10,%esp
51ac1b:	c3                   	ret
51ac1c:	cc                   	int3
51ac1d:	cc                   	int3
51ac1e:	cc                   	int3
51ac1f:	cc                   	int3
51ac20:	53                   	push   %ebx
51ac21:	56                   	push   %esi
51ac22:	8b 74 24 0c          	mov    0xc(%esp),%esi
51ac26:	57                   	push   %edi
51ac27:	6a 02                	push   $0x2
51ac29:	56                   	push   %esi
51ac2a:	e8 31 5b fd ff       	call   0x4f0760
51ac2f:	8b 4e 04             	mov    0x4(%esi),%ecx
51ac32:	83 c4 08             	add    $0x8,%esp
51ac35:	85 c9                	test   %ecx,%ecx
51ac37:	74 4f                	je     0x51ac88
51ac39:	8b 16                	mov    (%esi),%edx
51ac3b:	85 d2                	test   %edx,%edx
51ac3d:	74 49                	je     0x51ac88
51ac3f:	8b 7c 24 14          	mov    0x14(%esp),%edi
51ac43:	85 ff                	test   %edi,%edi
51ac45:	74 06                	je     0x51ac4d
51ac47:	8b 07                	mov    (%edi),%eax
51ac49:	3b 02                	cmp    (%edx),%eax
51ac4b:	75 47                	jne    0x51ac94
51ac4d:	8b 46 10             	mov    0x10(%esi),%eax
51ac50:	85 c0                	test   %eax,%eax
51ac52:	74 1e                	je     0x51ac72
51ac54:	56                   	push   %esi
51ac55:	6a 00                	push   $0x0
51ac57:	6a 07                	push   $0x7
51ac59:	68 f8 00 00 00       	push   $0xf8
51ac5e:	6a ff                	push   $0xffffffff
51ac60:	50                   	push   %eax
51ac61:	e8 6a c3 fc ff       	call   0x4e6fd0
51ac66:	83 c4 18             	add    $0x18,%esp
51ac69:	85 c0                	test   %eax,%eax
51ac6b:	7f 05                	jg     0x51ac72
51ac6d:	83 f8 fe             	cmp    $0xfffffffe,%eax
51ac70:	75 5b                	jne    0x51accd
51ac72:	f7 46 08 00 01 00 00 	testl  $0x100,0x8(%esi)
51ac79:	0f 84 38 01 00 00    	je     0x51adb7
51ac7f:	5f                   	pop    %edi
51ac80:	5e                   	pop    %esi
51ac81:	b8 01 00 00 00       	mov    $0x1,%eax
51ac86:	5b                   	pop    %ebx
51ac87:	c3                   	ret
51ac88:	8b 7c 24 14          	mov    0x14(%esp),%edi
51ac8c:	85 ff                	test   %edi,%edi
51ac8e:	0f 84 90 00 00 00    	je     0x51ad24
51ac94:	51                   	push   %ecx
51ac95:	e8 16 ca fc ff       	call   0x4e76b0
51ac9a:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
51ac9e:	83 c4 04             	add    $0x4,%esp
51aca1:	85 db                	test   %ebx,%ebx
51aca3:	74 2e                	je     0x51acd3
51aca5:	53                   	push   %ebx
51aca6:	e8 d5 ca fc ff       	call   0x4e7780
51acab:	83 c4 04             	add    $0x4,%esp
51acae:	85 c0                	test   %eax,%eax
51acb0:	75 31                	jne    0x51ace3
51acb2:	6a 58                	push   $0x58
51acb4:	68 84 07 64 00       	push   $0x640784
51acb9:	68 86 00 00 00       	push   $0x86
51acbe:	68 80 00 00 00       	push   $0x80
51acc3:	6a 06                	push   $0x6
51acc5:	e8 b6 e2 fb ff       	call   0x4d8f80
51acca:	83 c4 14             	add    $0x14,%esp
51accd:	5f                   	pop    %edi
51acce:	5e                   	pop    %esi
51accf:	33 c0                	xor    %eax,%eax
51acd1:	5b                   	pop    %ebx
51acd2:	c3                   	ret
51acd3:	ff 37                	push   (%edi)
51acd5:	e8 76 c7 ff ff       	call   0x517450
51acda:	8b d8                	mov    %eax,%ebx
51acdc:	83 c4 04             	add    $0x4,%esp
51acdf:	85 db                	test   %ebx,%ebx
51ace1:	74 38                	je     0x51ad1b
51ace3:	ff 37                	push   (%edi)
51ace5:	53                   	push   %ebx
51ace6:	e8 15 c7 ff ff       	call   0x517400
51aceb:	8b f8                	mov    %eax,%edi
51aced:	83 c4 08             	add    $0x8,%esp
51acf0:	85 ff                	test   %edi,%edi
51acf2:	75 29                	jne    0x51ad1d
51acf4:	6a 64                	push   $0x64
51acf6:	68 84 07 64 00       	push   $0x640784
51acfb:	68 86 00 00 00       	push   $0x86
51ad00:	68 80 00 00 00       	push   $0x80
51ad05:	6a 06                	push   $0x6
51ad07:	e8 74 e2 fb ff       	call   0x4d8f80
51ad0c:	53                   	push   %ebx