45757a:	89 42 f4             	mov    %eax,-0xc(%edx)
45757d:	8b 45 08             	mov    0x8(%ebp),%eax
457580:	8b 40 c8             	mov    -0x38(%eax),%eax
457583:	8b 40 30             	mov    0x30(%eax),%eax
457586:	ba 8c 7d 45 00       	mov    $0x457d8c,%edx
45758b:	e8 cc ce fa ff       	call   0x40445c
457590:	75 2f                	jne    0x4575c1
457592:	8b 45 08             	mov    0x8(%ebp),%eax
457595:	8d 50 e0             	lea    -0x20(%eax),%edx
457598:	8b 45 08             	mov    0x8(%ebp),%eax
45759b:	8b 40 d8             	mov    -0x28(%eax),%eax
45759e:	e8 11 d4 fc ff       	call   0x4249b4
4575a3:	8b 45 08             	mov    0x8(%ebp),%eax
4575a6:	33 d2                	xor    %edx,%edx
4575a8:	89 50 f0             	mov    %edx,-0x10(%eax)
4575ab:	8b 45 08             	mov    0x8(%ebp),%eax
4575ae:	c7 40 f8 fc ff ff ff 	movl   $0xfffffffc,-0x8(%eax)
4575b5:	8b 45 08             	mov    0x8(%ebp),%eax
4575b8:	c6 40 c7 00          	movb   $0x0,-0x39(%eax)
4575bc:	e9 9a 04 00 00       	jmp    0x457a5b
4575c1:	8b 45 08             	mov    0x8(%ebp),%eax
4575c4:	83 78 c0 00          	cmpl   $0x0,-0x40(%eax)
4575c8:	74 47                	je     0x457611
4575ca:	8b 45 08             	mov    0x8(%ebp),%eax
4575cd:	8b 40 c8             	mov    -0x38(%eax),%eax
4575d0:	8b 58 40             	mov    0x40(%eax),%ebx
4575d3:	83 fb ff             	cmp    $0xffffffff,%ebx
4575d6:	7e 12                	jle    0x4575ea
4575d8:	8b 45 08             	mov    0x8(%ebp),%eax
4575db:	8b 45 08             	mov    0x8(%ebp),%eax
4575de:	8b 40 c0             	mov    -0x40(%eax),%eax
4575e1:	e8 42 ca ff ff       	call   0x454028
4575e6:	3b d8                	cmp    %eax,%ebx
4575e8:	7c 2b                	jl     0x457615
4575ea:	8b 45 08             	mov    0x8(%ebp),%eax
4575ed:	8b 40 c8             	mov    -0x38(%eax),%eax
4575f0:	80 78 38 00          	cmpb   $0x0,0x38(%eax)
4575f4:	74 1b                	je     0x457611
4575f6:	8b 45 08             	mov    0x8(%ebp),%eax
4575f9:	8b 40 c8             	mov    -0x38(%eax),%eax
4575fc:	8b 70 4c             	mov    0x4c(%eax),%esi
4575ff:	85 f6                	test   %esi,%esi
457601:	74 12                	je     0x457615
457603:	8b 45 08             	mov    0x8(%ebp),%eax
457606:	8b c6                	mov    %esi,%eax
457608:	8b 10                	mov    (%eax),%edx
45760a:	ff 52 1c             	call   *0x1c(%edx)
45760d:	84 c0                	test   %al,%al
45760f:	75 04                	jne    0x457615
457611:	33 c0                	xor    %eax,%eax
457613:	eb 02                	jmp    0x457617
457615:	b0 01                	mov    $0x1,%al
457617:	8b 55 08             	mov    0x8(%ebp),%edx
45761a:	88 42 bf             	mov    %al,-0x41(%edx)
45761d:	8b 45 08             	mov    0x8(%ebp),%eax
457620:	80 78 bf 00          	cmpb   $0x0,-0x41(%eax)
457624:	75 23                	jne    0x457649
457626:	8b 45 08             	mov    0x8(%ebp),%eax
457629:	8b 40 c8             	mov    -0x38(%eax),%eax
45762c:	8b 58 4c             	mov    0x4c(%eax),%ebx
45762f:	85 db                	test   %ebx,%ebx
457631:	0f 84 c7 03 00 00    	je     0x4579fe
457637:	8b 45 08             	mov    0x8(%ebp),%eax
45763a:	8b c3                	mov    %ebx,%eax
45763c:	8b 10                	mov    (%eax),%edx
45763e:	ff 52 1c             	call   *0x1c(%edx)
457641:	84 c0                	test   %al,%al
457643:	0f 85 b5 03 00 00    	jne    0x4579fe
457649:	8b 45 08             	mov    0x8(%ebp),%eax
45764c:	c6 40 c7 01          	movb   $0x1,-0x39(%eax)
457650:	8b 45 08             	mov    0x8(%ebp),%eax
457653:	80 78 bf 00          	cmpb   $0x0,-0x41(%eax)
457657:	74 2c                	je     0x457685
457659:	8b 45 08             	mov    0x8(%ebp),%eax
45765c:	8b 40 f0             	mov    -0x10(%eax),%eax
45765f:	8b 55 08             	mov    0x8(%ebp),%edx
457662:	8b 52 c0             	mov    -0x40(%edx),%edx
457665:	03 42 34             	add    0x34(%edx),%eax
457668:	8b 55 08             	mov    0x8(%ebp),%edx
45766b:	89 42 f8             	mov    %eax,-0x8(%edx)
45766e:	8b 45 08             	mov    0x8(%ebp),%eax
457671:	8b 40 f4             	mov    -0xc(%eax),%eax
457674:	8b 55 08             	mov    0x8(%ebp),%edx
457677:	8b 52 c0             	mov    -0x40(%edx),%edx
45767a:	03 42 30             	add    0x30(%edx),%eax
45767d:	8b 55 08             	mov    0x8(%ebp),%edx
457680:	89 42 fc             	mov    %eax,-0x4(%edx)
457683:	eb 1e                	jmp    0x4576a3
457685:	8b 45 08             	mov    0x8(%ebp),%eax
457688:	8b 40 f0             	mov    -0x10(%eax),%eax
45768b:	83 c0 10             	add    $0x10,%eax
45768e:	8b 55 08             	mov    0x8(%ebp),%edx
457691:	89 42 f8             	mov    %eax,-0x8(%edx)
457694:	8b 45 08             	mov    0x8(%ebp),%eax
457697:	8b 40 f4             	mov    -0xc(%eax),%eax
45769a:	83 c0 10             	add    $0x10,%eax
45769d:	8b 55 08             	mov    0x8(%ebp),%edx
4576a0:	89 42 fc             	mov    %eax,-0x4(%edx)
4576a3:	8b 45 08             	mov    0x8(%ebp),%eax
4576a6:	8b 40 c8             	mov    -0x38(%eax),%eax
4576a9:	80 78 38 00          	cmpb   $0x0,0x38(%eax)
4576ad:	0f 84 c0 00 00 00    	je     0x457773
4576b3:	8b 45 08             	mov    0x8(%ebp),%eax
4576b6:	80 78 df 00          	cmpb   $0x0,-0x21(%eax)
4576ba:	0f 85 b3 00 00 00    	jne    0x457773
4576c0:	8b 45 08             	mov    0x8(%ebp),%eax
4576c3:	ff 40 f8             	incl   -0x8(%eax)
4576c6:	8b 45 08             	mov    0x8(%ebp),%eax
4576c9:	ff 40 fc             	incl   -0x4(%eax)
4576cc:	8b 45 08             	mov    0x8(%ebp),%eax
4576cf:	8b 40 d8             	mov    -0x28(%eax),%eax
4576d2:	8b 40 14             	mov    0x14(%eax),%eax
4576d5:	e8 2e cf fc ff       	call   0x424608
4576da:	8b 55 08             	mov    0x8(%ebp),%edx
4576dd:	89 42 b8             	mov    %eax,-0x48(%edx)
4576e0:	8b 45 08             	mov    0x8(%ebp),%eax
4576e3:	f6 40 0c 01          	testb  $0x1,0xc(%eax)
4576e7:	75 46                	jne    0x45772f
4576e9:	8b 45 08             	mov    0x8(%ebp),%eax
4576ec:	8b 40 d8             	mov    -0x28(%eax),%eax
4576ef:	8b 40 14             	mov    0x14(%eax),%eax
4576f2:	e8 11 cf fc ff       	call   0x424608
4576f7:	8b 55 08             	mov    0x8(%ebp),%edx
4576fa:	89 42 b8             	mov    %eax,-0x48(%edx)
4576fd:	ba 14 00 00 ff       	mov    $0xff000014,%edx
457702:	b8 0f 00 00 ff       	mov    $0xff00000f,%eax
457707:	e8 7c 39 fd ff       	call   0x42b088
45770c:	8b d0                	mov    %eax,%edx
45770e:	8b 45 08             	mov    0x8(%ebp),%eax
457711:	8b 40 d8             	mov    -0x28(%eax),%eax
457714:	8b 40 14             	mov    0x14(%eax),%eax
457717:	e8 c8 ce fc ff       	call   0x4245e4
45771c:	8b 45 08             	mov    0x8(%ebp),%eax
45771f:	8d 50 f0             	lea    -0x10(%eax),%edx
457722:	8b 45 08             	mov    0x8(%ebp),%eax
457725:	8b 40 d8             	mov    -0x28(%eax),%eax
457728:	e8 87 d2 fc ff       	call   0x4249b4
45772d:	eb 24                	jmp    0x457753
45772f:	8b 45 08             	mov    0x8(%ebp),%eax
457732:	8b 40 d8             	mov    -0x28(%eax),%eax
457735:	8b 40 14             	mov    0x14(%eax),%eax
457738:	ba 0f 00 00 ff       	mov    $0xff00000f,%edx
45773d:	e8 ce ce fc ff       	call   0x424610
457742:	8b 45 08             	mov    0x8(%ebp),%eax
457745:	8d 50 f0             	lea    -0x10(%eax),%edx
457748:	8b 45 08             	mov    0x8(%ebp),%eax
45774b:	8b 40 d8             	mov    -0x28(%eax),%eax
45774e:	e8 61 d2 fc ff       	call   0x4249b4
457753:	8b 45 08             	mov    0x8(%ebp),%eax
457756:	8b 50 b8             	mov    -0x48(%eax),%edx
457759:	8b 45 08             	mov    0x8(%ebp),%eax
45775c:	8b 40 d8             	mov    -0x28(%eax),%eax
45775f:	8b 40 14             	mov    0x14(%eax),%eax
457762:	e8 a9 ce fc ff       	call   0x424610
457767:	8b 45 08             	mov    0x8(%ebp),%eax
45776a:	ff 40 f0             	incl   -0x10(%eax)
45776d:	8b 45 08             	mov    0x8(%ebp),%eax
457770:	ff 40 f4             	incl   -0xc(%eax)
457773:	8b 45 08             	mov    0x8(%ebp),%eax
457776:	80 78 bf 00          	cmpb   $0x0,-0x41(%eax)
45777a:	0f 84 5a 01 00 00    	je     0x4578da
457780:	8b 45 08             	mov    0x8(%ebp),%eax
457783:	8b 40 c8             	mov    -0x38(%eax),%eax
457786:	8b 58 40             	mov    0x40(%eax),%ebx
457789:	83 fb ff             	cmp    $0xffffffff,%ebx
45778c:	7e 49                	jle    0x4577d7
45778e:	8b 45 08             	mov    0x8(%ebp),%eax
457791:	8b 45 08             	mov    0x8(%ebp),%eax
457794:	8b 40 c0             	mov    -0x40(%eax),%eax
457797:	e8 8c c8 ff ff       	call   0x454028
45779c:	3b d8                	cmp    %eax,%ebx
45779e:	7d 37                	jge    0x4577d7
4577a0:	8b 45 08             	mov    0x8(%ebp),%eax
4577a3:	8b 40 f4             	mov    -0xc(%eax),%eax
4577a6:	50                   	push   %eax
4577a7:	8b 45 08             	mov    0x8(%ebp),%eax
4577aa:	8b 40 c8             	mov    -0x38(%eax),%eax
4577ad:	8b 40 40             	mov    0x40(%eax),%eax
4577b0:	50                   	push   %eax
4577b1:	8b 45 08             	mov    0x8(%ebp),%eax
4577b4:	8b 40 c8             	mov    -0x38(%eax),%eax
4577b7:	8a 40 39             	mov    0x39(%eax),%al
4577ba:	50                   	push   %eax
4577bb:	8b 45 08             	mov    0x8(%ebp),%eax
4577be:	8b 48 f0             	mov    -0x10(%eax),%ecx
4577c1:	8b 45 08             	mov    0x8(%ebp),%eax
4577c4:	8b 50 d8             	mov    -0x28(%eax),%edx
4577c7:	8b 45 08             	mov    0x8(%ebp),%eax
4577ca:	8b 40 c0             	mov    -0x40(%eax),%eax
4577cd:	e8 6e cd ff ff       	call   0x454540
4577d2:	e9 0d 02 00 00       	jmp    0x4579e4
4577d7:	b2 01                	mov    $0x1,%dl
4577d9:	a1 98 2e 42 00       	mov    0x422e98,%eax
4577de:	e8 b9 16 fd ff       	call   0x428e9c
4577e3:	8b 55 08             	mov    0x8(%ebp),%edx
4577e6:	89 42 b4             	mov    %eax,-0x4c(%edx)
4577e9:	33 c0                	xor    %eax,%eax
4577eb:	55                   	push   %ebp
4577ec:	68 d3 78 45 00       	push   $0x4578d3
4577f1:	64 ff 30             	push   %fs:(%eax)
4577f4:	64 89 20             	mov    %esp,%fs:(%eax)
4577f7:	8b 45 08             	mov    0x8(%ebp),%eax
4577fa:	8b 40 b4             	mov    -0x4c(%eax),%eax
4577fd:	b2 01                	mov    $0x1,%dl
4577ff:	8b 08                	mov    (%eax),%ecx
457801:	ff 51 3c             	call   *0x3c(%ecx)
457804:	68 f8 7f 00 00       	push   $0x7ff8
457809:	6a 00                	push   $0x0
45780b:	e8 ec f1 fa ff       	call   0x4069fc
457810:	8b d0                	mov    %eax,%edx
457812:	8b 45 08             	mov    0x8(%ebp),%eax
457815:	8b 40 b4             	mov    -0x4c(%eax),%eax
457818:	e8 c7 27 fd ff       	call   0x429fe4
45781d:	8b 45 08             	mov    0x8(%ebp),%eax
457820:	8b 40 d8             	mov    -0x28(%eax),%eax
457823:	8b 40 0c             	mov    0xc(%eax),%eax
457826:	8b 40 18             	mov    0x18(%eax),%eax
457829:	8b 55 08             	mov    0x8(%ebp),%edx
45782c:	89 42 b8             	mov    %eax,-0x48(%edx)
45782f:	8b 45 08             	mov    0x8(%ebp),%eax
457832:	8b 40 d8             	mov    -0x28(%eax),%eax
457835:	8b 40 0c             	mov    0xc(%eax),%eax
457838:	ba 12 00 00 ff       	mov    $0xff000012,%edx
45783d:	e8 02 c6 fc ff       	call   0x423e44
457842:	8b 45 08             	mov    0x8(%ebp),%eax
457845:	8b 40 b4             	mov    -0x4c(%eax),%eax
457848:	50                   	push   %eax
457849:	8b 45 08             	mov    0x8(%ebp),%eax
45784c:	8b 40 b4             	mov    -0x4c(%eax),%eax
45784f:	8b 10                	mov    (%eax),%edx
457851:	ff 52 20             	call   *0x20(%edx)
457854:	8b 55 08             	mov    0x8(%ebp),%edx
457857:	8b 52 fc             	mov    -0x4(%edx),%edx
45785a:	8b 4d 08             	mov    0x8(%ebp),%ecx
45785d:	8b 71 f4             	mov    -0xc(%ecx),%esi
457860:	2b d6                	sub    %esi,%edx
457862:	2b d0                	sub    %eax,%edx
457864:	d1 fa                	sar    $1,%edx
457866:	79 03                	jns    0x45786b
457868:	83 d2 00             	adc    $0x0,%edx
45786b:	8b 45 08             	mov    0x8(%ebp),%eax
45786e:	03 d6                	add    %esi,%edx
457870:	42                   	inc    %edx
457871:	52                   	push   %edx
457872:	8b 45 08             	mov    0x8(%ebp),%eax
457875:	8b 40 b4             	mov    -0x4c(%eax),%eax
457878:	8b 10                	mov    (%eax),%edx
45787a:	ff 52 2c             	call   *0x2c(%edx)
45787d:	8b 55 08             	mov    0x8(%ebp),%edx
457880:	8b 52 f8             	mov    -0x8(%edx),%edx
457883:	8b 4d 08             	mov    0x8(%ebp),%ecx
457886:	8b 59 f0             	mov    -0x10(%ecx),%ebx
457889:	2b d3                	sub    %ebx,%edx
45788b:	2b d0                	sub    %eax,%edx
45788d:	d1 fa                	sar    $1,%edx
45788f:	79 03                	jns    0x457894
457891:	83 d2 00             	adc    $0x0,%edx
457894:	8b 45 08             	mov    0x8(%ebp),%eax
457897:	03 d3                	add    %ebx,%edx
457899:	42                   	inc    %edx
45789a:	8b 45 08             	mov    0x8(%ebp),%eax
45789d:	8b 40 d8             	mov    -0x28(%eax),%eax
4578a0:	59                   	pop    %ecx
4578a1:	e8 62 d0 fc ff       	call   0x424908
4578a6:	8b 45 08             	mov    0x8(%ebp),%eax
4578a9:	8b 50 b8             	mov    -0x48(%eax),%edx
4578ac:	8b 45 08             	mov    0x8(%ebp),%eax
4578af:	8b 40 d8             	mov    -0x28(%eax),%eax
4578b2:	8b 40 0c             	mov    0xc(%eax),%eax
4578b5:	e8 8a c5 fc ff       	call   0x423e44
4578ba:	33 c0                	xor    %eax,%eax
4578bc:	5a                   	pop    %edx
4578bd:	59                   	pop    %ecx
4578be:	59                   	pop    %ecx
4578bf:	64 89 10             	mov    %edx,%fs:(%eax)
4578c2:	68 e4 79 45 00       	push   $0x4579e4
4578c7:	8b 45 08             	mov    0x8(%ebp),%eax
4578ca:	8b 40 b4             	mov    -0x4c(%eax),%eax
4578cd:	e8 ee b9 fa ff       	call   0x4032c0
4578d2:	c3                   	ret
4578d3:	e9 7c c1 fa ff       	jmp    0x403a54
4578d8:	eb ed                	jmp    0x4578c7
4578da:	8b 45 08             	mov    0x8(%ebp),%eax
4578dd:	8b 55 08             	mov    0x8(%ebp),%edx
4578e0:	8d 70 f0             	lea    -0x10(%eax),%esi
4578e3:	8d 7a a4             	lea    -0x5c(%edx),%edi
4578e6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4578e7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4578e8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4578e9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4578ea:	8b 45 08             	mov    0x8(%ebp),%eax
4578ed:	8b 40 c8             	mov    -0x38(%eax),%eax
4578f0:	8b 40 4c             	mov    0x4c(%eax),%eax
4578f3:	8b 10                	mov    (%eax),%edx
4578f5:	ff 52 2c             	call   *0x2c(%edx)
4578f8:	8b 55 08             	mov    0x8(%ebp),%edx
4578fb:	8b 52 f8             	mov    -0x8(%edx),%edx
4578fe:	8b 4d 08             	mov    0x8(%ebp),%ecx
457901:	2b 51 f0             	sub    -0x10(%ecx),%edx
457904:	3b c2                	cmp    %edx,%eax
457906:	7d 4a                	jge    0x457952
457908:	8b 45 08             	mov    0x8(%ebp),%eax
45790b:	8b 40 c8             	mov    -0x38(%eax),%eax
45790e:	8b 40 4c             	mov    0x4c(%eax),%eax
457911:	8b 10                	mov    (%eax),%edx
457913:	ff 52 2c             	call   *0x2c(%edx)
457916:	8b 55 08             	mov    0x8(%ebp),%edx
457919:	8b 52 f8             	mov    -0x8(%edx),%edx
45791c:	8b 4d 08             	mov    0x8(%ebp),%ecx
45791f:	2b 51 f0             	sub    -0x10(%ecx),%edx
457922:	2b d0                	sub    %eax,%edx
457924:	d1 fa                	sar    $1,%edx
457926:	79 03                	jns    0x45792b
457928:	83 d2 00             	adc    $0x0,%edx
45792b:	8b 45 08             	mov    0x8(%ebp),%eax
45792e:	03 50 f0             	add    -0x10(%eax),%edx
457931:	42                   	inc    %edx
457932:	8b 45 08             	mov    0x8(%ebp),%eax
457935:	89 50 f0             	mov    %edx,-0x10(%eax)
457938:	8b 45 08             	mov    0x8(%ebp),%eax
45793b:	8b 40 c8             	mov    -0x38(%eax),%eax
45793e:	8b 40 4c             	mov    0x4c(%eax),%eax
457941:	8b 10                	mov    (%eax),%edx
457943:	ff 52 2c             	call   *0x2c(%edx)
457946:	8b 55 08             	mov    0x8(%ebp),%edx
457949:	03 42 f0             	add    -0x10(%edx),%eax
45794c:	8b 55 08             	mov    0x8(%ebp),%edx
45794f:	89 42 f8             	mov    %eax,-0x8(%edx)
457952:	8b 45 08             	mov    0x8(%ebp),%eax
457955:	8b 40 c8             	mov    -0x38(%eax),%eax
457958:	8b 40 4c             	mov    0x4c(%eax),%eax
45795b:	8b 10                	mov    (%eax),%edx
45795d:	ff 52 20             	call   *0x20(%edx)
457960:	8b 55 08             	mov    0x8(%ebp),%edx
457963:	8b 52 fc             	mov    -0x4(%edx),%edx
457966:	8b 4d 08             	mov    0x8(%ebp),%ecx
457969:	2b 51 f4             	sub    -0xc(%ecx),%edx
45796c:	3b c2                	cmp    %edx,%eax
45796e:	7d 4a                	jge    0x4579ba
457970:	8b 45 08             	mov    0x8(%ebp),%eax
457973:	8b 40 c8             	mov    -0x38(%eax),%eax
457976:	8b 40 4c             	mov    0x4c(%eax),%eax
457979:	8b 10                	mov    (%eax),%edx
45797b:	ff 52 20             	call   *0x20(%edx)
45797e:	8b 55 08             	mov    0x8(%ebp),%edx
457981:	8b 52 fc             	mov    -0x4(%edx),%edx
457984:	8b 4d 08             	mov    0x8(%ebp),%ecx
457987:	2b 51 f4             	sub    -0xc(%ecx),%edx
45798a:	2b d0                	sub    %eax,%edx
45798c:	d1 fa                	sar    $1,%edx