40786d:	6a 00                	push   $0x0
40786f:	68 74 cc 45 00       	push   $0x45cc74
407874:	50                   	push   %eax
407875:	ff d6                	call   *%esi
407877:	85 c0                	test   %eax,%eax
407879:	75 2a                	jne    0x4078a5
40787b:	8b c7                	mov    %edi,%eax
40787d:	8d 50 02             	lea    0x2(%eax),%edx
407880:	66 8b 08             	mov    (%eax),%cx
407883:	83 c0 02             	add    $0x2,%eax
407886:	66 85 c9             	test   %cx,%cx
407889:	75 f5                	jne    0x407880
40788b:	2b c2                	sub    %edx,%eax
40788d:	8b 54 24 0c          	mov    0xc(%esp),%edx
407891:	d1 f8                	sar    $1,%eax
407893:	8d 4c 00 02          	lea    0x2(%eax,%eax,1),%ecx
407897:	51                   	push   %ecx
407898:	57                   	push   %edi
407899:	6a 01                	push   $0x1
40789b:	6a 00                	push   $0x0
40789d:	68 50 cc 45 00       	push   $0x45cc50
4078a2:	52                   	push   %edx
4078a3:	ff d6                	call   *%esi
4078a5:	5e                   	pop    %esi
4078a6:	5f                   	pop    %edi
4078a7:	81 c4 18 02 00 00    	add    $0x218,%esp
4078ad:	c3                   	ret
4078ae:	cc                   	int3
4078af:	cc                   	int3
4078b0:	81 ec 10 04 00 00    	sub    $0x410,%esp
4078b6:	53                   	push   %ebx
4078b7:	57                   	push   %edi
4078b8:	8b bc 24 1c 04 00 00 	mov    0x41c(%esp),%edi
4078bf:	68 74 cd 45 00       	push   $0x45cd74
4078c4:	57                   	push   %edi
4078c5:	68 0c c2 45 00       	push   $0x45c20c
4078ca:	8d 84 24 1c 02 00 00 	lea    0x21c(%esp),%eax
4078d1:	68 04 01 00 00       	push   $0x104
4078d6:	50                   	push   %eax
4078d7:	e8 83 8d 02 00       	call   0x43065f
4078dc:	8b 1d 68 34 47 00    	mov    0x473468,%ebx
4078e2:	83 c4 14             	add    $0x14,%esp
4078e5:	68 04 01 00 00       	push   $0x104
4078ea:	8d 54 24 0c          	lea    0xc(%esp),%edx
4078ee:	33 c9                	xor    %ecx,%ecx
4078f0:	52                   	push   %edx
4078f1:	66 89 8c 24 1e 04 00 	mov    %cx,0x41e(%esp)
4078f8:	00
4078f9:	ff d3                	call   *%ebx
4078fb:	85 c0                	test   %eax,%eax
4078fd:	75 0f                	jne    0x40790e
4078ff:	ff 15 24 34 47 00    	call   *0x473424
407905:	5f                   	pop    %edi
407906:	5b                   	pop    %ebx
407907:	81 c4 10 04 00 00    	add    $0x410,%esp
40790d:	c3                   	ret
40790e:	8d 44 24 08          	lea    0x8(%esp),%eax
407912:	8d 50 02             	lea    0x2(%eax),%edx
407915:	66 8b 08             	mov    (%eax),%cx
407918:	83 c0 02             	add    $0x2,%eax
40791b:	66 85 c9             	test   %cx,%cx
40791e:	75 f5                	jne    0x407915
407920:	2b c2                	sub    %edx,%eax
407922:	d1 f8                	sar    $1,%eax
407924:	56                   	push   %esi
407925:	b9 04 01 00 00       	mov    $0x104,%ecx
40792a:	2b c8                	sub    %eax,%ecx
40792c:	51                   	push   %ecx
40792d:	8d 54 24 10          	lea    0x10(%esp),%edx
407931:	68 50 cd 45 00       	push   $0x45cd50
407936:	52                   	push   %edx
407937:	e8 65 ae 02 00       	call   0x4327a1
40793c:	8b 35 88 34 47 00    	mov    0x473488,%esi
407942:	83 c4 0c             	add    $0xc,%esp
407945:	6a 00                	push   $0x0
407947:	8d 44 24 10          	lea    0x10(%esp),%eax
40794b:	50                   	push   %eax
40794c:	8d 8c 24 1c 02 00 00 	lea    0x21c(%esp),%ecx
407953:	51                   	push   %ecx
407954:	ff d6                	call   *%esi
407956:	85 c0                	test   %eax,%eax
407958:	0f 84 80 00 00 00    	je     0x4079de
40795e:	68 2c cd 45 00       	push   $0x45cd2c
407963:	57                   	push   %edi
407964:	68 0c c2 45 00       	push   $0x45c20c
407969:	8d 94 24 20 02 00 00 	lea    0x220(%esp),%edx
407970:	68 04 01 00 00       	push   $0x104
407975:	52                   	push   %edx
407976:	e8 e4 8c 02 00       	call   0x43065f
40797b:	83 c4 14             	add    $0x14,%esp
40797e:	68 04 01 00 00       	push   $0x104
407983:	8d 4c 24 10          	lea    0x10(%esp),%ecx
407987:	33 c0                	xor    %eax,%eax
407989:	51                   	push   %ecx
40798a:	66 89 84 24 22 04 00 	mov    %ax,0x422(%esp)
407991:	00
407992:	ff d3                	call   *%ebx
407994:	85 c0                	test   %eax,%eax
407996:	74 46                	je     0x4079de
407998:	8d 44 24 0c          	lea    0xc(%esp),%eax
40799c:	8d 50 02             	lea    0x2(%eax),%edx
40799f:	90                   	nop
4079a0:	66 8b 08             	mov    (%eax),%cx
4079a3:	83 c0 02             	add    $0x2,%eax
4079a6:	66 85 c9             	test   %cx,%cx
4079a9:	75 f5                	jne    0x4079a0
4079ab:	2b c2                	sub    %edx,%eax
4079ad:	d1 f8                	sar    $1,%eax
4079af:	ba 04 01 00 00       	mov    $0x104,%edx
4079b4:	2b d0                	sub    %eax,%edx
4079b6:	52                   	push   %edx
4079b7:	8d 44 24 10          	lea    0x10(%esp),%eax
4079bb:	68 08 cd 45 00       	push   $0x45cd08
4079c0:	50                   	push   %eax
4079c1:	e8 db ad 02 00       	call   0x4327a1
4079c6:	83 c4 0c             	add    $0xc,%esp
4079c9:	6a 00                	push   $0x0
4079cb:	8d 4c 24 10          	lea    0x10(%esp),%ecx
4079cf:	51                   	push   %ecx
4079d0:	8d 94 24 1c 02 00 00 	lea    0x21c(%esp),%edx
4079d7:	52                   	push   %edx
4079d8:	ff d6                	call   *%esi
4079da:	85 c0                	test   %eax,%eax
4079dc:	75 10                	jne    0x4079ee
4079de:	ff 15 24 34 47 00    	call   *0x473424
4079e4:	5e                   	pop    %esi
4079e5:	5f                   	pop    %edi
4079e6:	5b                   	pop    %ebx
4079e7:	81 c4 10 04 00 00    	add    $0x410,%esp
4079ed:	c3                   	ret
4079ee:	5e                   	pop    %esi
4079ef:	5f                   	pop    %edi
4079f0:	33 c0                	xor    %eax,%eax
4079f2:	5b                   	pop    %ebx
4079f3:	81 c4 10 04 00 00    	add    $0x410,%esp
4079f9:	c3                   	ret
4079fa:	cc                   	int3
4079fb:	cc                   	int3
4079fc:	cc                   	int3
4079fd:	cc                   	int3
4079fe:	cc                   	int3
4079ff:	cc                   	int3
407a00:	8b 4c 24 04          	mov    0x4(%esp),%ecx
407a04:	8b 41 08             	mov    0x8(%ecx),%eax
407a07:	85 c0                	test   %eax,%eax
407a09:	75 05                	jne    0x407a10
407a0b:	b8 a0 cd 45 00       	mov    $0x45cda0,%eax
407a10:	50                   	push   %eax
407a11:	8b 41 04             	mov    0x4(%ecx),%eax
407a14:	50                   	push   %eax
407a15:	68 98 cd 45 00       	push   $0x45cd98
407a1a:	e8 de 8a 02 00       	call   0x4304fd
407a1f:	83 c4 0c             	add    $0xc,%esp
407a22:	c3                   	ret
407a23:	cc                   	int3
407a24:	cc                   	int3
407a25:	cc                   	int3
407a26:	cc                   	int3
407a27:	cc                   	int3
407a28:	cc                   	int3
407a29:	cc                   	int3
407a2a:	cc                   	int3
407a2b:	cc                   	int3
407a2c:	cc                   	int3
407a2d:	cc                   	int3
407a2e:	cc                   	int3
407a2f:	cc                   	int3
407a30:	81 ec 04 01 00 00    	sub    $0x104,%esp
407a36:	53                   	push   %ebx
407a37:	8b 9c 24 14 01 00 00 	mov    0x114(%esp),%ebx
407a3e:	55                   	push   %ebp
407a3f:	8b ac 24 14 01 00 00 	mov    0x114(%esp),%ebp
407a46:	56                   	push   %esi
407a47:	57                   	push   %edi
407a48:	8b bc 24 18 01 00 00 	mov    0x118(%esp),%edi
407a4f:	90                   	nop
407a50:	8b 43 14             	mov    0x14(%ebx),%eax
407a53:	85 c0                	test   %eax,%eax
407a55:	75 05                	jne    0x407a5c
407a57:	b8 a0 cd 45 00       	mov    $0x45cda0,%eax
407a5c:	50                   	push   %eax
407a5d:	57                   	push   %edi
407a5e:	68 e4 cd 45 00       	push   $0x45cde4
407a63:	e8 95 8a 02 00       	call   0x4304fd
407a68:	8b 43 10             	mov    0x10(%ebx),%eax
407a6b:	50                   	push   %eax
407a6c:	57                   	push   %edi
407a6d:	68 d0 cd 45 00       	push   $0x45cdd0
407a72:	e8 86 8a 02 00       	call   0x4304fd
407a77:	57                   	push   %edi
407a78:	68 c4 cd 45 00       	push   $0x45cdc4
407a7d:	e8 7b 8a 02 00       	call   0x4304fd
407a82:	8b 73 0c             	mov    0xc(%ebx),%esi
407a85:	83 c4 20             	add    $0x20,%esp
407a88:	85 f6                	test   %esi,%esi
407a8a:	74 42                	je     0x407ace
407a8c:	8d 64 24 00          	lea    0x0(%esp),%esp
407a90:	55                   	push   %ebp
407a91:	55                   	push   %ebp
407a92:	57                   	push   %edi
407a93:	68 bc cd 45 00       	push   $0x45cdbc
407a98:	e8 60 8a 02 00       	call   0x4304fd
407a9d:	8b 46 08             	mov    0x8(%esi),%eax
407aa0:	83 c4 10             	add    $0x10,%esp
407aa3:	85 c0                	test   %eax,%eax
407aa5:	75 05                	jne    0x407aac
407aa7:	b8 a0 cd 45 00       	mov    $0x45cda0,%eax
407aac:	8b 4e 04             	mov    0x4(%esi),%ecx
407aaf:	50                   	push   %eax
407ab0:	51                   	push   %ecx
407ab1:	68 98 cd 45 00       	push   $0x45cd98
407ab6:	e8 42 8a 02 00       	call   0x4304fd
407abb:	68 b8 cd 45 00       	push   $0x45cdb8
407ac0:	e8 38 8a 02 00       	call   0x4304fd
407ac5:	8b 36                	mov    (%esi),%esi
407ac7:	83 c4 10             	add    $0x10,%esp
407aca:	85 f6                	test   %esi,%esi
407acc:	75 c2                	jne    0x407a90
407ace:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
407ad2:	74 2a                	je     0x407afe
407ad4:	55                   	push   %ebp
407ad5:	57                   	push   %edi
407ad6:	68 b0 cd 45 00       	push   $0x45cdb0
407adb:	8d 54 24 1c          	lea    0x1c(%esp),%edx
407adf:	68 04 01 00 00       	push   $0x104
407ae4:	52                   	push   %edx
407ae5:	e8 d9 92 02 00       	call   0x430dc3
407aea:	8b 43 04             	mov    0x4(%ebx),%eax
407aed:	6a 01                	push   $0x1
407aef:	50                   	push   %eax
407af0:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
407af4:	55                   	push   %ebp
407af5:	51                   	push   %ecx
407af6:	e8 35 ff ff ff       	call   0x407a30
407afb:	83 c4 24             	add    $0x24,%esp
407afe:	83 bc 24 24 01 00 00 	cmpl   $0x0,0x124(%esp)
407b05:	00
407b06:	74 16                	je     0x407b1e
407b08:	8b 1b                	mov    (%ebx),%ebx
407b0a:	85 db                	test   %ebx,%ebx
407b0c:	74 10                	je     0x407b1e
407b0e:	c7 84 24 24 01 00 00 	movl   $0x1,0x124(%esp)
407b15:	01 00 00 00
407b19:	e9 32 ff ff ff       	jmp    0x407a50
407b1e:	5f                   	pop    %edi
407b1f:	5e                   	pop    %esi
407b20:	5d                   	pop    %ebp
407b21:	5b                   	pop    %ebx
407b22:	81 c4 04 01 00 00    	add    $0x104,%esp
407b28:	c3                   	ret
407b29:	cc                   	int3
407b2a:	cc                   	int3
407b2b:	cc                   	int3
407b2c:	cc                   	int3
407b2d:	cc                   	int3
407b2e:	cc                   	int3
407b2f:	cc                   	int3
407b30:	53                   	push   %ebx
407b31:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
407b35:	57                   	push   %edi
407b36:	33 ff                	xor    %edi,%edi
407b38:	85 db                	test   %ebx,%ebx
407b3a:	0f 84 bc 00 00 00    	je     0x407bfc
407b40:	56                   	push   %esi
407b41:	8b 73 04             	mov    0x4(%ebx),%esi
407b44:	85 f6                	test   %esi,%esi
407b46:	0f 84 af 00 00 00    	je     0x407bfb
407b4c:	55                   	push   %ebp
407b4d:	8b 6c 24 14          	mov    0x14(%esp),%ebp
407b51:	8b 46 14             	mov    0x14(%esi),%eax
407b54:	50                   	push   %eax
407b55:	55                   	push   %ebp
407b56:	e8 3c ba 02 00       	call   0x433597
407b5b:	83 c4 08             	add    $0x8,%esp
407b5e:	85 c0                	test   %eax,%eax
407b60:	74 0d                	je     0x407b6f
407b62:	8b fe                	mov    %esi,%edi
407b64:	8b 36                	mov    (%esi),%esi
407b66:	85 f6                	test   %esi,%esi
407b68:	75 e7                	jne    0x407b51
407b6a:	5d                   	pop    %ebp
407b6b:	5e                   	pop    %esi
407b6c:	5f                   	pop    %edi
407b6d:	5b                   	pop    %ebx
407b6e:	c3                   	ret
407b6f:	33 ed                	xor    %ebp,%ebp
407b71:	3b fd                	cmp    %ebp,%edi
407b73:	75 07                	jne    0x407b7c
407b75:	8b 0e                	mov    (%esi),%ecx
407b77:	89 4b 04             	mov    %ecx,0x4(%ebx)
407b7a:	eb 04                	jmp    0x407b80
407b7c:	8b 16                	mov    (%esi),%edx
407b7e:	89 17                	mov    %edx,(%edi)
407b80:	39 73 08             	cmp    %esi,0x8(%ebx)
407b83:	75 03                	jne    0x407b88
407b85:	89 7b 08             	mov    %edi,0x8(%ebx)
407b88:	8b 5e 04             	mov    0x4(%esi),%ebx
407b8b:	8b 7e 0c             	mov    0xc(%esi),%edi
407b8e:	3b dd                	cmp    %ebp,%ebx
407b90:	74 0f                	je     0x407ba1
407b92:	53                   	push   %ebx
407b93:	8b 1b                	mov    (%ebx),%ebx
407b95:	e8 76 e5 ff ff       	call   0x406110
407b9a:	83 c4 04             	add    $0x4,%esp
407b9d:	3b dd                	cmp    %ebp,%ebx
407b9f:	75 f1                	jne    0x407b92
407ba1:	89 6e 04             	mov    %ebp,0x4(%esi)
407ba4:	89 6e 08             	mov    %ebp,0x8(%esi)
407ba7:	3b fd                	cmp    %ebp,%edi
407ba9:	74 36                	je     0x407be1
407bab:	eb 03                	jmp    0x407bb0
407bad:	8d 49 00             	lea    0x0(%ecx),%ecx
407bb0:	8b 47 04             	mov    0x4(%edi),%eax
407bb3:	8b 1f                	mov    (%edi),%ebx
407bb5:	3b c5                	cmp    %ebp,%eax
407bb7:	74 09                	je     0x407bc2
407bb9:	50                   	push   %eax
407bba:	e8 de 8d 02 00       	call   0x43099d
407bbf:	83 c4 04             	add    $0x4,%esp
407bc2:	8b 47 08             	mov    0x8(%edi),%eax
407bc5:	3b c5                	cmp    %ebp,%eax
407bc7:	74 09                	je     0x407bd2
407bc9:	50                   	push   %eax
407bca:	e8 ce 8d 02 00       	call   0x43099d
407bcf:	83 c4 04             	add    $0x4,%esp
407bd2:	57                   	push   %edi
407bd3:	e8 c5 8d 02 00       	call   0x43099d
407bd8:	83 c4 04             	add    $0x4,%esp
407bdb:	8b fb                	mov    %ebx,%edi
407bdd:	3b dd                	cmp    %ebp,%ebx
407bdf:	75 cf                	jne    0x407bb0
407be1:	8b 46 14             	mov    0x14(%esi),%eax
407be4:	3b c5                	cmp    %ebp,%eax
407be6:	74 09                	je     0x407bf1
407be8:	50                   	push   %eax
407be9:	e8 af 8d 02 00       	call   0x43099d
407bee:	83 c4 04             	add    $0x4,%esp
407bf1:	56                   	push   %esi
407bf2:	e8 a6 8d 02 00       	call   0x43099d
407bf7:	83 c4 04             	add    $0x4,%esp
407bfa:	5d                   	pop    %ebp
407bfb:	5e                   	pop    %esi
407bfc:	5f                   	pop    %edi
407bfd:	5b                   	pop    %ebx
407bfe:	c3                   	ret
407bff:	cc                   	int3
407c00:	53                   	push   %ebx
407c01:	55                   	push   %ebp
407c02:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
407c06:	56                   	push   %esi