43f53d:	8b 40 c8             	mov    -0x38(%eax),%eax
43f540:	8b 58 4c             	mov    0x4c(%eax),%ebx
43f543:	85 db                	test   %ebx,%ebx
43f545:	0f 84 c8 03 00 00    	je     0x43f913
43f54b:	8b 45 08             	mov    0x8(%ebp),%eax
43f54e:	8b c3                	mov    %ebx,%eax
43f550:	8b 10                	mov    (%eax),%edx
43f552:	ff 52 1c             	call   *0x1c(%edx)
43f555:	84 c0                	test   %al,%al
43f557:	0f 85 b6 03 00 00    	jne    0x43f913
43f55d:	8b 45 08             	mov    0x8(%ebp),%eax
43f560:	c6 40 c7 01          	movb   $0x1,-0x39(%eax)
43f564:	8b 45 08             	mov    0x8(%ebp),%eax
43f567:	80 78 bf 00          	cmpb   $0x0,-0x41(%eax)
43f56b:	74 2c                	je     0x43f599
43f56d:	8b 45 08             	mov    0x8(%ebp),%eax
43f570:	8b 40 f0             	mov    -0x10(%eax),%eax
43f573:	8b 55 08             	mov    0x8(%ebp),%edx
43f576:	8b 52 c0             	mov    -0x40(%edx),%edx
43f579:	03 42 34             	add    0x34(%edx),%eax
43f57c:	8b 55 08             	mov    0x8(%ebp),%edx
43f57f:	89 42 f8             	mov    %eax,-0x8(%edx)
43f582:	8b 45 08             	mov    0x8(%ebp),%eax
43f585:	8b 40 f4             	mov    -0xc(%eax),%eax
43f588:	8b 55 08             	mov    0x8(%ebp),%edx
43f58b:	8b 52 c0             	mov    -0x40(%edx),%edx
43f58e:	03 42 30             	add    0x30(%edx),%eax
43f591:	8b 55 08             	mov    0x8(%ebp),%edx
43f594:	89 42 fc             	mov    %eax,-0x4(%edx)
43f597:	eb 1e                	jmp    0x43f5b7
43f599:	8b 45 08             	mov    0x8(%ebp),%eax
43f59c:	8b 40 f0             	mov    -0x10(%eax),%eax
43f59f:	83 c0 10             	add    $0x10,%eax
43f5a2:	8b 55 08             	mov    0x8(%ebp),%edx
43f5a5:	89 42 f8             	mov    %eax,-0x8(%edx)
43f5a8:	8b 45 08             	mov    0x8(%ebp),%eax
43f5ab:	8b 40 f4             	mov    -0xc(%eax),%eax
43f5ae:	83 c0 10             	add    $0x10,%eax
43f5b1:	8b 55 08             	mov    0x8(%ebp),%edx
43f5b4:	89 42 fc             	mov    %eax,-0x4(%edx)
43f5b7:	8b 45 08             	mov    0x8(%ebp),%eax
43f5ba:	8b 40 c8             	mov    -0x38(%eax),%eax
43f5bd:	80 78 38 00          	cmpb   $0x0,0x38(%eax)
43f5c1:	0f 84 c0 00 00 00    	je     0x43f687
43f5c7:	8b 45 08             	mov    0x8(%ebp),%eax
43f5ca:	80 78 df 00          	cmpb   $0x0,-0x21(%eax)
43f5ce:	0f 85 b3 00 00 00    	jne    0x43f687
43f5d4:	8b 45 08             	mov    0x8(%ebp),%eax
43f5d7:	ff 40 f8             	incl   -0x8(%eax)
43f5da:	8b 45 08             	mov    0x8(%ebp),%eax
43f5dd:	ff 40 fc             	incl   -0x4(%eax)
43f5e0:	8b 45 08             	mov    0x8(%ebp),%eax
43f5e3:	8b 40 d8             	mov    -0x28(%eax),%eax
43f5e6:	8b 40 14             	mov    0x14(%eax),%eax
43f5e9:	e8 fa 52 fe ff       	call   0x4248e8
43f5ee:	8b 55 08             	mov    0x8(%ebp),%edx
43f5f1:	89 42 b8             	mov    %eax,-0x48(%edx)
43f5f4:	8b 45 08             	mov    0x8(%ebp),%eax
43f5f7:	f6 40 0c 01          	testb  $0x1,0xc(%eax)
43f5fb:	75 46                	jne    0x43f643
43f5fd:	8b 45 08             	mov    0x8(%ebp),%eax
43f600:	8b 40 d8             	mov    -0x28(%eax),%eax
43f603:	8b 40 14             	mov    0x14(%eax),%eax
43f606:	e8 dd 52 fe ff       	call   0x4248e8
43f60b:	8b 55 08             	mov    0x8(%ebp),%edx
43f60e:	89 42 b8             	mov    %eax,-0x48(%edx)
43f611:	ba 14 00 00 ff       	mov    $0xff000014,%edx
43f616:	b8 0f 00 00 ff       	mov    $0xff00000f,%eax
43f61b:	e8 f0 c2 fe ff       	call   0x42b910
43f620:	8b d0                	mov    %eax,%edx
43f622:	8b 45 08             	mov    0x8(%ebp),%eax
43f625:	8b 40 d8             	mov    -0x28(%eax),%eax
43f628:	8b 40 14             	mov    0x14(%eax),%eax
43f62b:	e8 94 52 fe ff       	call   0x4248c4
43f630:	8b 45 08             	mov    0x8(%ebp),%eax
43f633:	8d 50 f0             	lea    -0x10(%eax),%edx
43f636:	8b 45 08             	mov    0x8(%ebp),%eax
43f639:	8b 40 d8             	mov    -0x28(%eax),%eax
43f63c:	e8 53 56 fe ff       	call   0x424c94
43f641:	eb 24                	jmp    0x43f667
43f643:	8b 45 08             	mov    0x8(%ebp),%eax
43f646:	8b 40 d8             	mov    -0x28(%eax),%eax
43f649:	8b 40 14             	mov    0x14(%eax),%eax
43f64c:	ba 0f 00 00 ff       	mov    $0xff00000f,%edx
43f651:	e8 9a 52 fe ff       	call   0x4248f0
43f656:	8b 45 08             	mov    0x8(%ebp),%eax
43f659:	8d 50 f0             	lea    -0x10(%eax),%edx
43f65c:	8b 45 08             	mov    0x8(%ebp),%eax
43f65f:	8b 40 d8             	mov    -0x28(%eax),%eax
43f662:	e8 2d 56 fe ff       	call   0x424c94
43f667:	8b 45 08             	mov    0x8(%ebp),%eax
43f66a:	8b 50 b8             	mov    -0x48(%eax),%edx
43f66d:	8b 45 08             	mov    0x8(%ebp),%eax
43f670:	8b 40 d8             	mov    -0x28(%eax),%eax
43f673:	8b 40 14             	mov    0x14(%eax),%eax
43f676:	e8 75 52 fe ff       	call   0x4248f0
43f67b:	8b 45 08             	mov    0x8(%ebp),%eax
43f67e:	ff 40 f0             	incl   -0x10(%eax)
43f681:	8b 45 08             	mov    0x8(%ebp),%eax
43f684:	ff 40 f4             	incl   -0xc(%eax)
43f687:	8b 45 08             	mov    0x8(%ebp),%eax
43f68a:	80 78 bf 00          	cmpb   $0x0,-0x41(%eax)
43f68e:	0f 84 5b 01 00 00    	je     0x43f7ef
43f694:	8b 45 08             	mov    0x8(%ebp),%eax
43f697:	8b 40 c8             	mov    -0x38(%eax),%eax
43f69a:	8b 58 40             	mov    0x40(%eax),%ebx
43f69d:	83 fb ff             	cmp    $0xffffffff,%ebx
43f6a0:	7e 4a                	jle    0x43f6ec
43f6a2:	8b 45 08             	mov    0x8(%ebp),%eax
43f6a5:	8b 45 08             	mov    0x8(%ebp),%eax
43f6a8:	8b 40 c0             	mov    -0x40(%eax),%eax
43f6ab:	e8 dc 86 01 00       	call   0x457d8c
43f6b0:	3b d8                	cmp    %eax,%ebx
43f6b2:	7d 38                	jge    0x43f6ec
43f6b4:	8b 45 08             	mov    0x8(%ebp),%eax
43f6b7:	8b 40 f4             	mov    -0xc(%eax),%eax
43f6ba:	50                   	push   %eax
43f6bb:	8b 45 08             	mov    0x8(%ebp),%eax
43f6be:	8b 40 c8             	mov    -0x38(%eax),%eax
43f6c1:	8b 40 40             	mov    0x40(%eax),%eax
43f6c4:	50                   	push   %eax
43f6c5:	8b 45 08             	mov    0x8(%ebp),%eax
43f6c8:	8b 40 c8             	mov    -0x38(%eax),%eax
43f6cb:	0f b6 40 39          	movzbl 0x39(%eax),%eax
43f6cf:	50                   	push   %eax
43f6d0:	8b 45 08             	mov    0x8(%ebp),%eax
43f6d3:	8b 48 f0             	mov    -0x10(%eax),%ecx
43f6d6:	8b 45 08             	mov    0x8(%ebp),%eax
43f6d9:	8b 50 d8             	mov    -0x28(%eax),%edx
43f6dc:	8b 45 08             	mov    0x8(%ebp),%eax
43f6df:	8b 40 c0             	mov    -0x40(%eax),%eax
43f6e2:	e8 95 89 01 00       	call   0x45807c
43f6e7:	e9 0d 02 00 00       	jmp    0x43f8f9
43f6ec:	b2 01                	mov    $0x1,%dl
43f6ee:	a1 d4 2f 42 00       	mov    0x422fd4,%eax
43f6f3:	e8 90 9f fe ff       	call   0x429688
43f6f8:	8b 55 08             	mov    0x8(%ebp),%edx
43f6fb:	89 42 b4             	mov    %eax,-0x4c(%edx)
43f6fe:	33 c0                	xor    %eax,%eax
43f700:	55                   	push   %ebp
43f701:	68 e8 f7 43 00       	push   $0x43f7e8
43f706:	64 ff 30             	push   %fs:(%eax)
43f709:	64 89 20             	mov    %esp,%fs:(%eax)
43f70c:	8b 45 08             	mov    0x8(%ebp),%eax
43f70f:	8b 40 b4             	mov    -0x4c(%eax),%eax
43f712:	b2 01                	mov    $0x1,%dl
43f714:	8b 08                	mov    (%eax),%ecx
43f716:	ff 51 3c             	call   *0x3c(%ecx)
43f719:	68 f8 7f 00 00       	push   $0x7ff8
43f71e:	6a 00                	push   $0x0
43f720:	e8 33 7a fc ff       	call   0x407158
43f725:	8b d0                	mov    %eax,%edx
43f727:	8b 45 08             	mov    0x8(%ebp),%eax
43f72a:	8b 40 b4             	mov    -0x4c(%eax),%eax
43f72d:	e8 52 b0 fe ff       	call   0x42a784
43f732:	8b 45 08             	mov    0x8(%ebp),%eax
43f735:	8b 40 d8             	mov    -0x28(%eax),%eax
43f738:	8b 40 0c             	mov    0xc(%eax),%eax
43f73b:	8b 40 18             	mov    0x18(%eax),%eax
43f73e:	8b 55 08             	mov    0x8(%ebp),%edx
43f741:	89 42 b8             	mov    %eax,-0x48(%edx)
43f744:	8b 45 08             	mov    0x8(%ebp),%eax
43f747:	8b 40 d8             	mov    -0x28(%eax),%eax
43f74a:	8b 40 0c             	mov    0xc(%eax),%eax
43f74d:	ba 12 00 00 ff       	mov    $0xff000012,%edx
43f752:	e8 dd 48 fe ff       	call   0x424034
43f757:	8b 45 08             	mov    0x8(%ebp),%eax
43f75a:	8b 40 b4             	mov    -0x4c(%eax),%eax
43f75d:	50                   	push   %eax
43f75e:	8b 45 08             	mov    0x8(%ebp),%eax
43f761:	8b 40 b4             	mov    -0x4c(%eax),%eax
43f764:	8b 10                	mov    (%eax),%edx
43f766:	ff 52 20             	call   *0x20(%edx)
43f769:	8b 55 08             	mov    0x8(%ebp),%edx
43f76c:	8b 52 fc             	mov    -0x4(%edx),%edx
43f76f:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f772:	8b 71 f4             	mov    -0xc(%ecx),%esi
43f775:	2b d6                	sub    %esi,%edx
43f777:	2b d0                	sub    %eax,%edx
43f779:	d1 fa                	sar    $1,%edx
43f77b:	79 03                	jns    0x43f780
43f77d:	83 d2 00             	adc    $0x0,%edx
43f780:	8b 45 08             	mov    0x8(%ebp),%eax
43f783:	03 d6                	add    %esi,%edx
43f785:	42                   	inc    %edx
43f786:	52                   	push   %edx
43f787:	8b 45 08             	mov    0x8(%ebp),%eax
43f78a:	8b 40 b4             	mov    -0x4c(%eax),%eax
43f78d:	8b 10                	mov    (%eax),%edx
43f78f:	ff 52 2c             	call   *0x2c(%edx)
43f792:	8b 55 08             	mov    0x8(%ebp),%edx
43f795:	8b 52 f8             	mov    -0x8(%edx),%edx
43f798:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f79b:	8b 59 f0             	mov    -0x10(%ecx),%ebx
43f79e:	2b d3                	sub    %ebx,%edx
43f7a0:	2b d0                	sub    %eax,%edx
43f7a2:	d1 fa                	sar    $1,%edx
43f7a4:	79 03                	jns    0x43f7a9
43f7a6:	83 d2 00             	adc    $0x0,%edx
43f7a9:	8b 45 08             	mov    0x8(%ebp),%eax
43f7ac:	03 d3                	add    %ebx,%edx
43f7ae:	42                   	inc    %edx
43f7af:	8b 45 08             	mov    0x8(%ebp),%eax
43f7b2:	8b 40 d8             	mov    -0x28(%eax),%eax
43f7b5:	59                   	pop    %ecx
43f7b6:	e8 2d 54 fe ff       	call   0x424be8
43f7bb:	8b 45 08             	mov    0x8(%ebp),%eax
43f7be:	8b 50 b8             	mov    -0x48(%eax),%edx
43f7c1:	8b 45 08             	mov    0x8(%ebp),%eax
43f7c4:	8b 40 d8             	mov    -0x28(%eax),%eax
43f7c7:	8b 40 0c             	mov    0xc(%eax),%eax
43f7ca:	e8 65 48 fe ff       	call   0x424034
43f7cf:	33 c0                	xor    %eax,%eax
43f7d1:	5a                   	pop    %edx
43f7d2:	59                   	pop    %ecx
43f7d3:	59                   	pop    %ecx
43f7d4:	64 89 10             	mov    %edx,%fs:(%eax)
43f7d7:	68 f9 f8 43 00       	push   $0x43f8f9
43f7dc:	8b 45 08             	mov    0x8(%ebp),%eax
43f7df:	8b 40 b4             	mov    -0x4c(%eax),%eax
43f7e2:	e8 35 41 fc ff       	call   0x40391c
43f7e7:	c3                   	ret
43f7e8:	e9 c3 48 fc ff       	jmp    0x4040b0
43f7ed:	eb ed                	jmp    0x43f7dc
43f7ef:	8b 45 08             	mov    0x8(%ebp),%eax
43f7f2:	8b 55 08             	mov    0x8(%ebp),%edx
43f7f5:	8d 70 f0             	lea    -0x10(%eax),%esi
43f7f8:	8d 7a a4             	lea    -0x5c(%edx),%edi
43f7fb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f7fc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f7fd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f7fe:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f7ff:	8b 45 08             	mov    0x8(%ebp),%eax
43f802:	8b 40 c8             	mov    -0x38(%eax),%eax
43f805:	8b 40 4c             	mov    0x4c(%eax),%eax
43f808:	8b 10                	mov    (%eax),%edx
43f80a:	ff 52 2c             	call   *0x2c(%edx)
43f80d:	8b 55 08             	mov    0x8(%ebp),%edx
43f810:	8b 52 f8             	mov    -0x8(%edx),%edx
43f813:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f816:	2b 51 f0             	sub    -0x10(%ecx),%edx
43f819:	3b c2                	cmp    %edx,%eax
43f81b:	7d 4a                	jge    0x43f867
43f81d:	8b 45 08             	mov    0x8(%ebp),%eax
43f820:	8b 40 c8             	mov    -0x38(%eax),%eax
43f823:	8b 40 4c             	mov    0x4c(%eax),%eax
43f826:	8b 10                	mov    (%eax),%edx
43f828:	ff 52 2c             	call   *0x2c(%edx)
43f82b:	8b 55 08             	mov    0x8(%ebp),%edx
43f82e:	8b 52 f8             	mov    -0x8(%edx),%edx
43f831:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f834:	2b 51 f0             	sub    -0x10(%ecx),%edx
43f837:	2b d0                	sub    %eax,%edx
43f839:	d1 fa                	sar    $1,%edx
43f83b:	79 03                	jns    0x43f840
43f83d:	83 d2 00             	adc    $0x0,%edx
43f840:	8b 45 08             	mov    0x8(%ebp),%eax
43f843:	03 50 f0             	add    -0x10(%eax),%edx
43f846:	42                   	inc    %edx
43f847:	8b 45 08             	mov    0x8(%ebp),%eax
43f84a:	89 50 f0             	mov    %edx,-0x10(%eax)
43f84d:	8b 45 08             	mov    0x8(%ebp),%eax
43f850:	8b 40 c8             	mov    -0x38(%eax),%eax
43f853:	8b 40 4c             	mov    0x4c(%eax),%eax
43f856:	8b 10                	mov    (%eax),%edx
43f858:	ff 52 2c             	call   *0x2c(%edx)
43f85b:	8b 55 08             	mov    0x8(%ebp),%edx
43f85e:	03 42 f0             	add    -0x10(%edx),%eax
43f861:	8b 55 08             	mov    0x8(%ebp),%edx
43f864:	89 42 f8             	mov    %eax,-0x8(%edx)
43f867:	8b 45 08             	mov    0x8(%ebp),%eax
43f86a:	8b 40 c8             	mov    -0x38(%eax),%eax
43f86d:	8b 40 4c             	mov    0x4c(%eax),%eax
43f870:	8b 10                	mov    (%eax),%edx
43f872:	ff 52 20             	call   *0x20(%edx)
43f875:	8b 55 08             	mov    0x8(%ebp),%edx
43f878:	8b 52 fc             	mov    -0x4(%edx),%edx
43f87b:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f87e:	2b 51 f4             	sub    -0xc(%ecx),%edx
43f881:	3b c2                	cmp    %edx,%eax
43f883:	7d 4a                	jge    0x43f8cf
43f885:	8b 45 08             	mov    0x8(%ebp),%eax
43f888:	8b 40 c8             	mov    -0x38(%eax),%eax
43f88b:	8b 40 4c             	mov    0x4c(%eax),%eax
43f88e:	8b 10                	mov    (%eax),%edx
43f890:	ff 52 20             	call   *0x20(%edx)
43f893:	8b 55 08             	mov    0x8(%ebp),%edx
43f896:	8b 52 fc             	mov    -0x4(%edx),%edx
43f899:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f89c:	2b 51 f4             	sub    -0xc(%ecx),%edx
43f89f:	2b d0                	sub    %eax,%edx
43f8a1:	d1 fa                	sar    $1,%edx
43f8a3:	79 03                	jns    0x43f8a8
43f8a5:	83 d2 00             	adc    $0x0,%edx
43f8a8:	8b 45 08             	mov    0x8(%ebp),%eax
43f8ab:	03 50 f4             	add    -0xc(%eax),%edx
43f8ae:	42                   	inc    %edx
43f8af:	8b 45 08             	mov    0x8(%ebp),%eax
43f8b2:	89 50 f4             	mov    %edx,-0xc(%eax)
43f8b5:	8b 45 08             	mov    0x8(%ebp),%eax
43f8b8:	8b 40 c8             	mov    -0x38(%eax),%eax
43f8bb:	8b 40 4c             	mov    0x4c(%eax),%eax
43f8be:	8b 10                	mov    (%eax),%edx
43f8c0:	ff 52 20             	call   *0x20(%edx)
43f8c3:	8b 55 08             	mov    0x8(%ebp),%edx
43f8c6:	03 42 f4             	add    -0xc(%edx),%eax
43f8c9:	8b 55 08             	mov    0x8(%ebp),%edx
43f8cc:	89 42 fc             	mov    %eax,-0x4(%edx)
43f8cf:	8b 45 08             	mov    0x8(%ebp),%eax
43f8d2:	8b 40 c8             	mov    -0x38(%eax),%eax
43f8d5:	8b 48 4c             	mov    0x4c(%eax),%ecx
43f8d8:	8b 45 08             	mov    0x8(%ebp),%eax
43f8db:	8d 50 f0             	lea    -0x10(%eax),%edx
43f8de:	8b 45 08             	mov    0x8(%ebp),%eax
43f8e1:	8b 40 d8             	mov    -0x28(%eax),%eax
43f8e4:	e8 33 55 fe ff       	call   0x424e1c
43f8e9:	8b 45 08             	mov    0x8(%ebp),%eax
43f8ec:	8b 55 08             	mov    0x8(%ebp),%edx
43f8ef:	8d 70 a4             	lea    -0x5c(%eax),%esi
43f8f2:	8d 7a f0             	lea    -0x10(%edx),%edi
43f8f5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f8f6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f8f7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f8f8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
43f8f9:	8b 45 08             	mov    0x8(%ebp),%eax
43f8fc:	8b 40 c8             	mov    -0x38(%eax),%eax
43f8ff:	80 78 38 00          	cmpb   $0x0,0x38(%eax)
43f903:	74 6b                	je     0x43f970
43f905:	8b 45 08             	mov    0x8(%ebp),%eax
43f908:	ff 48 f8             	decl   -0x8(%eax)
43f90b:	8b 45 08             	mov    0x8(%ebp),%eax
43f90e:	ff 48 fc             	decl   -0x4(%eax)
43f911:	eb 5d                	jmp    0x43f970
43f913:	8b 45 08             	mov    0x8(%ebp),%eax
43f916:	83 78 c0 00          	cmpl   $0x0,-0x40(%eax)
43f91a:	74 35                	je     0x43f951
43f91c:	8b 45 08             	mov    0x8(%ebp),%eax
43f91f:	80 78 08 00          	cmpb   $0x0,0x8(%eax)
43f923:	75 2c                	jne    0x43f951
43f925:	8b 45 08             	mov    0x8(%ebp),%eax
43f928:	8b 40 f0             	mov    -0x10(%eax),%eax
43f92b:	8b 55 08             	mov    0x8(%ebp),%edx
43f92e:	8b 52 c0             	mov    -0x40(%edx),%edx
43f931:	03 42 34             	add    0x34(%edx),%eax
43f934:	8b 55 08             	mov    0x8(%ebp),%edx
43f937:	89 42 f8             	mov    %eax,-0x8(%edx)
43f93a:	8b 45 08             	mov    0x8(%ebp),%eax
43f93d:	8b 40 f4             	mov    -0xc(%eax),%eax
43f940:	8b 55 08             	mov    0x8(%ebp),%edx
43f943:	8b 52 c0             	mov    -0x40(%edx),%edx