44579f:	e8 4b fd ff ff       	call   0x4454ef
4457a4:	89 1f                	mov    %ebx,(%edi)
4457a6:	eb 0c                	jmp    0x4457b4
4457a8:	53                   	push   %ebx
4457a9:	ff 75 10             	push   0x10(%ebp)
4457ac:	57                   	push   %edi
4457ad:	e8 f3 c9 fb ff       	call   0x4021a5
4457b2:	8b f0                	mov    %eax,%esi
4457b4:	5f                   	pop    %edi
4457b5:	8b c6                	mov    %esi,%eax
4457b7:	5e                   	pop    %esi
4457b8:	5b                   	pop    %ebx
4457b9:	8b e5                	mov    %ebp,%esp
4457bb:	5d                   	pop    %ebp
4457bc:	c2 10 00             	ret    $0x10
4457bf:	55                   	push   %ebp
4457c0:	8b ec                	mov    %esp,%ebp
4457c2:	51                   	push   %ecx
4457c3:	56                   	push   %esi
4457c4:	57                   	push   %edi
4457c5:	33 f6                	xor    %esi,%esi
4457c7:	8d 45 fc             	lea    -0x4(%ebp),%eax
4457ca:	50                   	push   %eax
4457cb:	56                   	push   %esi
4457cc:	56                   	push   %esi
4457cd:	ff 75 08             	push   0x8(%ebp)
4457d0:	8b fe                	mov    %esi,%edi
4457d2:	89 75 fc             	mov    %esi,-0x4(%ebp)
4457d5:	ff 15 a4 b0 44 00    	call   *0x44b0a4
4457db:	85 c0                	test   %eax,%eax
4457dd:	0f 85 92 00 00 00    	jne    0x445875
4457e3:	ff 15 e8 b0 44 00    	call   *0x44b0e8
4457e9:	83 f8 7a             	cmp    $0x7a,%eax
4457ec:	75 66                	jne    0x445854
4457ee:	6a 01                	push   $0x1
4457f0:	ff 75 fc             	push   -0x4(%ebp)
4457f3:	e8 dc e0 fb ff       	call   0x4038d4
4457f8:	8b f8                	mov    %eax,%edi
4457fa:	85 ff                	test   %edi,%edi
4457fc:	75 14                	jne    0x445812
4457fe:	be 0e 00 07 80       	mov    $0x8007000e,%esi
445803:	56                   	push   %esi
445804:	6a 18                	push   $0x18
445806:	68 3c 68 46 00       	push   $0x46683c
44580b:	e8 c3 df fb ff       	call   0x4037d3
445810:	eb 74                	jmp    0x445886
445812:	8d 45 fc             	lea    -0x4(%ebp),%eax
445815:	50                   	push   %eax
445816:	ff 75 fc             	push   -0x4(%ebp)
445819:	57                   	push   %edi
44581a:	ff 75 08             	push   0x8(%ebp)
44581d:	ff 15 a4 b0 44 00    	call   *0x44b0a4
445823:	85 c0                	test   %eax,%eax
445825:	75 4e                	jne    0x445875
445827:	ff 15 e8 b0 44 00    	call   *0x44b0e8
44582d:	0f b7 f0             	movzwl %ax,%esi
445830:	81 ce 00 00 07 80    	or     $0x80070000,%esi
445836:	85 c0                	test   %eax,%eax
445838:	0f 4e f0             	cmovle %eax,%esi
44583b:	b8 05 40 00 80       	mov    $0x80004005,%eax
445840:	85 f6                	test   %esi,%esi
445842:	0f 49 f0             	cmovns %eax,%esi
445845:	56                   	push   %esi
445846:	6a 1c                	push   $0x1c
445848:	68 3c 68 46 00       	push   $0x46683c
44584d:	e8 81 df fb ff       	call   0x4037d3
445852:	eb 28                	jmp    0x44587c
445854:	85 c0                	test   %eax,%eax
445856:	74 1d                	je     0x445875
445858:	0f b7 f0             	movzwl %ax,%esi
44585b:	81 ce 00 00 07 80    	or     $0x80070000,%esi
445861:	85 c0                	test   %eax,%eax
445863:	0f 4e f0             	cmovle %eax,%esi
445866:	b8 05 40 00 80       	mov    $0x80004005,%eax
44586b:	85 f6                	test   %esi,%esi
44586d:	0f 49 f0             	cmovns %eax,%esi
445870:	56                   	push   %esi
445871:	6a 21                	push   $0x21
445873:	eb 91                	jmp    0x445806
445875:	8b 45 0c             	mov    0xc(%ebp),%eax
445878:	89 38                	mov    %edi,(%eax)
44587a:	8b fe                	mov    %esi,%edi
44587c:	85 ff                	test   %edi,%edi
44587e:	74 06                	je     0x445886
445880:	57                   	push   %edi
445881:	e8 13 e1 fb ff       	call   0x403999
445886:	5f                   	pop    %edi
445887:	8b c6                	mov    %esi,%eax
445889:	5e                   	pop    %esi
44588a:	8b e5                	mov    %ebp,%esp
44588c:	5d                   	pop    %ebp
44588d:	c2 08 00             	ret    $0x8
445890:	55                   	push   %ebp
445891:	8b ec                	mov    %esp,%ebp
445893:	51                   	push   %ecx
445894:	8b 4d 08             	mov    0x8(%ebp),%ecx
445897:	8b 55 0c             	mov    0xc(%ebp),%edx
44589a:	53                   	push   %ebx
44589b:	8b 5d 14             	mov    0x14(%ebp),%ebx
44589e:	56                   	push   %esi
44589f:	57                   	push   %edi
4458a0:	8b 7d 10             	mov    0x10(%ebp),%edi
4458a3:	33 f6                	xor    %esi,%esi
4458a5:	8b c7                	mov    %edi,%eax
4458a7:	2b c1                	sub    %ecx,%eax
4458a9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4458ac:	8b c3                	mov    %ebx,%eax
4458ae:	1b c2                	sbb    %edx,%eax
4458b0:	3b c6                	cmp    %esi,%eax
4458b2:	77 3b                	ja     0x4458ef
4458b4:	72 09                	jb     0x4458bf
4458b6:	81 7d fc 00 00 00 80 	cmpl   $0x80000000,-0x4(%ebp)
4458bd:	73 30                	jae    0x4458ef
4458bf:	3b d6                	cmp    %esi,%edx
4458c1:	72 1a                	jb     0x4458dd
4458c3:	77 04                	ja     0x4458c9
4458c5:	3b ce                	cmp    %esi,%ecx
4458c7:	76 14                	jbe    0x4458dd
4458c9:	52                   	push   %edx
4458ca:	51                   	push   %ecx
4458cb:	68 9c 68 46 00       	push   $0x46689c
4458d0:	ff 75 18             	push   0x18(%ebp)
4458d3:	e8 48 c6 fb ff       	call   0x401f20
4458d8:	83 c4 10             	add    $0x10,%esp
4458db:	eb 2c                	jmp    0x445909
4458dd:	8b 7d 18             	mov    0x18(%ebp),%edi
4458e0:	39 37                	cmp    %esi,(%edi)
4458e2:	74 27                	je     0x44590b
4458e4:	ff 37                	push   (%edi)
4458e6:	e8 04 fc ff ff       	call   0x4454ef
4458eb:	89 37                	mov    %esi,(%edi)
4458ed:	eb 1c                	jmp    0x44590b
4458ef:	83 c7 ff             	add    $0xffffffff,%edi
4458f2:	83 d3 ff             	adc    $0xffffffff,%ebx
4458f5:	53                   	push   %ebx
4458f6:	57                   	push   %edi
4458f7:	52                   	push   %edx
4458f8:	51                   	push   %ecx
4458f9:	68 c4 68 46 00       	push   $0x4668c4
4458fe:	ff 75 18             	push   0x18(%ebp)
445901:	e8 1a c6 fb ff       	call   0x401f20
445906:	83 c4 18             	add    $0x18,%esp
445909:	8b f0                	mov    %eax,%esi
44590b:	5f                   	pop    %edi
44590c:	8b c6                	mov    %esi,%eax
44590e:	5e                   	pop    %esi
44590f:	5b                   	pop    %ebx
445910:	8b e5                	mov    %ebp,%esp
445912:	5d                   	pop    %ebp
445913:	c2 14 00             	ret    $0x14
445916:	55                   	push   %ebp
445917:	8b ec                	mov    %esp,%ebp
445919:	83 ec 20             	sub    $0x20,%esp
44591c:	53                   	push   %ebx
44591d:	56                   	push   %esi
44591e:	57                   	push   %edi
44591f:	33 c0                	xor    %eax,%eax
445921:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
445928:	50                   	push   %eax
445929:	68 80 00 00 00       	push   $0x80
44592e:	6a 04                	push   $0x4
445930:	50                   	push   %eax
445931:	6a 04                	push   $0x4
445933:	68 00 00 00 c0       	push   $0xc0000000
445938:	ff 75 18             	push   0x18(%ebp)
44593b:	8b f8                	mov    %eax,%edi
44593d:	89 45 ec             	mov    %eax,-0x14(%ebp)
445940:	8b d8                	mov    %eax,%ebx
445942:	89 45 f0             	mov    %eax,-0x10(%ebp)
445945:	0f 57 c0             	xorps  %xmm0,%xmm0
445948:	89 7d fc             	mov    %edi,-0x4(%ebp)
44594b:	8b f0                	mov    %eax,%esi
44594d:	89 5d f4             	mov    %ebx,-0xc(%ebp)
445950:	66 0f 13 45 e0       	movlpd %xmm0,-0x20(%ebp)
445955:	ff 15 d8 b0 44 00    	call   *0x44b0d8
44595b:	89 45 e8             	mov    %eax,-0x18(%ebp)
44595e:	83 f8 ff             	cmp    $0xffffffff,%eax
445961:	75 33                	jne    0x445996
445963:	ff 15 e8 b0 44 00    	call   *0x44b0e8
445969:	0f b7 f0             	movzwl %ax,%esi
44596c:	81 ce 00 00 07 80    	or     $0x80070000,%esi
445972:	85 c0                	test   %eax,%eax
445974:	0f 4e f0             	cmovle %eax,%esi
445977:	b8 05 40 00 80       	mov    $0x80004005,%eax
44597c:	85 f6                	test   %esi,%esi
44597e:	0f 49 f0             	cmovns %eax,%esi
445981:	56                   	push   %esi
445982:	68 21 01 00 00       	push   $0x121
445987:	68 5c 68 46 00       	push   $0x46685c
44598c:	e8 42 de fb ff       	call   0x4037d3
445991:	e9 73 01 00 00       	jmp    0x445b09
445996:	6a 04                	push   $0x4
445998:	68 00 30 00 00       	push   $0x3000
44599d:	68 00 00 01 00       	push   $0x10000
4459a2:	6a 00                	push   $0x0
4459a4:	ff 15 a8 b2 44 00    	call   *0x44b2a8
4459aa:	89 45 ec             	mov    %eax,-0x14(%ebp)
4459ad:	85 c0                	test   %eax,%eax
4459af:	75 26                	jne    0x4459d7
4459b1:	ff 15 e8 b0 44 00    	call   *0x44b0e8
4459b7:	0f b7 f0             	movzwl %ax,%esi
4459ba:	81 ce 00 00 07 80    	or     $0x80070000,%esi
4459c0:	85 c0                	test   %eax,%eax
4459c2:	0f 4e f0             	cmovle %eax,%esi
4459c5:	b8 05 40 00 80       	mov    $0x80004005,%eax
4459ca:	85 f6                	test   %esi,%esi
4459cc:	0f 49 f0             	cmovns %eax,%esi
4459cf:	56                   	push   %esi
4459d0:	68 26 01 00 00       	push   $0x126
4459d5:	eb b0                	jmp    0x445987
4459d7:	8b 45 28             	mov    0x28(%ebp),%eax
4459da:	8b 4d 24             	mov    0x24(%ebp),%ecx
4459dd:	89 45 18             	mov    %eax,0x18(%ebp)
4459e0:	89 4d 28             	mov    %ecx,0x28(%ebp)
4459e3:	85 c9                	test   %ecx,%ecx
4459e5:	75 0c                	jne    0x4459f3
4459e7:	85 c0                	test   %eax,%eax
4459e9:	75 08                	jne    0x4459f3
4459eb:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
4459ee:	8b 45 20             	mov    0x20(%ebp),%eax
4459f1:	eb 14                	jmp    0x445a07
4459f3:	39 45 30             	cmp    %eax,0x30(%ebp)
4459f6:	0f 87 f7 00 00 00    	ja     0x445af3
4459fc:	72 09                	jb     0x445a07
4459fe:	39 4d 2c             	cmp    %ecx,0x2c(%ebp)
445a01:	0f 83 ec 00 00 00    	jae    0x445af3
445a07:	8d 55 f0             	lea    -0x10(%ebp),%edx
445a0a:	52                   	push   %edx
445a0b:	50                   	push   %eax
445a0c:	51                   	push   %ecx
445a0d:	ff 75 30             	push   0x30(%ebp)
445a10:	ff 75 2c             	push   0x2c(%ebp)
445a13:	e8 78 fe ff ff       	call   0x445890
445a18:	8b f0                	mov    %eax,%esi
445a1a:	85 f6                	test   %esi,%esi
445a1c:	0f 88 d1 00 00 00    	js     0x445af3
445a22:	85 ff                	test   %edi,%edi
445a24:	74 0b                	je     0x445a31
445a26:	57                   	push   %edi
445a27:	ff 15 6c a9 46 00    	call   *0x46a96c
445a2d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
445a31:	85 db                	test   %ebx,%ebx
445a33:	74 0b                	je     0x445a40
445a35:	53                   	push   %ebx
445a36:	ff 15 6c a9 46 00    	call   *0x46a96c
445a3c:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
445a40:	8d 45 f8             	lea    -0x8(%ebp),%eax
445a43:	50                   	push   %eax
445a44:	8d 45 f4             	lea    -0xc(%ebp),%eax
445a47:	50                   	push   %eax
445a48:	8d 45 fc             	lea    -0x4(%ebp),%eax
445a4b:	50                   	push   %eax
445a4c:	ff 75 3c             	push   0x3c(%ebp)
445a4f:	ff 75 14             	push   0x14(%ebp)
445a52:	ff 75 10             	push   0x10(%ebp)
445a55:	ff 75 f0             	push   -0x10(%ebp)
445a58:	68 94 68 46 00       	push   $0x466894
445a5d:	ff 75 0c             	push   0xc(%ebp)
445a60:	ff 75 08             	push   0x8(%ebp)
445a63:	e8 17 03 00 00       	call   0x445d7f
445a68:	8b 5d f4             	mov    -0xc(%ebp),%ebx
445a6b:	8b f0                	mov    %eax,%esi
445a6d:	85 f6                	test   %esi,%esi
445a6f:	78 7f                	js     0x445af0
445a71:	8b 4d 28             	mov    0x28(%ebp),%ecx
445a74:	8b 45 18             	mov    0x18(%ebp),%eax
445a77:	85 c9                	test   %ecx,%ecx
445a79:	75 1e                	jne    0x445a99
445a7b:	85 c0                	test   %eax,%eax
445a7d:	75 1a                	jne    0x445a99
445a7f:	8d 45 e0             	lea    -0x20(%ebp),%eax
445a82:	50                   	push   %eax
445a83:	53                   	push   %ebx
445a84:	e8 35 2e 00 00       	call   0x4488be
445a89:	85 c0                	test   %eax,%eax
445a8b:	78 50                	js     0x445add
445a8d:	8b 4d e0             	mov    -0x20(%ebp),%ecx
445a90:	8b 45 e4             	mov    -0x1c(%ebp),%eax
445a93:	89 4d 28             	mov    %ecx,0x28(%ebp)
445a96:	89 45 18             	mov    %eax,0x18(%ebp)
445a99:	8b 7d f8             	mov    -0x8(%ebp),%edi
445a9c:	85 ff                	test   %edi,%edi
445a9e:	75 08                	jne    0x445aa8
445aa0:	0f 57 c0             	xorps  %xmm0,%xmm0
445aa3:	66 0f 13 45 2c       	movlpd %xmm0,0x2c(%ebp)
445aa8:	ff 75 38             	push   0x38(%ebp)
445aab:	68 00 00 01 00       	push   $0x10000
445ab0:	ff 75 ec             	push   -0x14(%ebp)
445ab3:	50                   	push   %eax
445ab4:	51                   	push   %ecx
445ab5:	ff 75 34             	push   0x34(%ebp)
445ab8:	8d 45 2c             	lea    0x2c(%ebp),%eax
445abb:	50                   	push   %eax
445abc:	ff 75 e8             	push   -0x18(%ebp)
445abf:	53                   	push   %ebx
445ac0:	e8 35 07 00 00       	call   0x4461fa
445ac5:	8b f0                	mov    %eax,%esi
445ac7:	85 f6                	test   %esi,%esi
445ac9:	78 25                	js     0x445af0
445acb:	85 ff                	test   %edi,%edi
445acd:	8b 7d fc             	mov    -0x4(%ebp),%edi
445ad0:	74 21                	je     0x445af3
445ad2:	8b 45 18             	mov    0x18(%ebp),%eax
445ad5:	8b 4d 28             	mov    0x28(%ebp),%ecx
445ad8:	e9 06 ff ff ff       	jmp    0x4459e3
445add:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
445ae0:	33 ff                	xor    %edi,%edi
445ae2:	8b 45 20             	mov    0x20(%ebp),%eax
445ae5:	89 4d 28             	mov    %ecx,0x28(%ebp)
445ae8:	89 45 18             	mov    %eax,0x18(%ebp)
445aeb:	89 7d f8             	mov    %edi,-0x8(%ebp)
445aee:	eb ac                	jmp    0x445a9c
445af0:	8b 7d fc             	mov    -0x4(%ebp),%edi
445af3:	85 db                	test   %ebx,%ebx
445af5:	74 07                	je     0x445afe
445af7:	53                   	push   %ebx
445af8:	ff 15 6c a9 46 00    	call   *0x46a96c
445afe:	85 ff                	test   %edi,%edi
445b00:	74 07                	je     0x445b09
445b02:	57                   	push   %edi
445b03:	ff 15 6c a9 46 00    	call   *0x46a96c
445b09:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
445b0d:	74 08                	je     0x445b17
445b0f:	ff 75 f0             	push   -0x10(%ebp)
445b12:	e8 d8 f9 ff ff       	call   0x4454ef
445b17:	8b 45 ec             	mov    -0x14(%ebp),%eax
445b1a:	85 c0                	test   %eax,%eax
445b1c:	74 0e                	je     0x445b2c
445b1e:	68 00 80 00 00       	push   $0x8000
445b23:	6a 00                	push   $0x0
445b25:	50                   	push   %eax
445b26:	ff 15 ac b2 44 00    	call   *0x44b2ac
445b2c:	8b 45 e8             	mov    -0x18(%ebp),%eax
445b2f:	83 f8 ff             	cmp    $0xffffffff,%eax
445b32:	74 07                	je     0x445b3b
445b34:	50                   	push   %eax
445b35:	ff 15 d4 b0 44 00    	call   *0x44b0d4
445b3b:	5f                   	pop    %edi
445b3c:	8b c6                	mov    %esi,%eax
445b3e:	5e                   	pop    %esi
445b3f:	5b                   	pop    %ebx
445b40:	8b e5                	mov    %ebp,%esp
445b42:	5d                   	pop    %ebp
445b43:	c2 38 00             	ret    $0x38
445b46:	55                   	push   %ebp
445b47:	8b ec                	mov    %esp,%ebp
445b49:	56                   	push   %esi
445b4a:	57                   	push   %edi
445b4b:	8b 7d 08             	mov    0x8(%ebp),%edi
445b4e:	33 f6                	xor    %esi,%esi