43a517:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a51a:	8b 80 a0 00 00 00    	mov    0xa0(%eax),%eax
43a520:	3b d8                	cmp    %eax,%ebx
43a522:	74 44                	je     0x43a568
43a524:	8b f8                	mov    %eax,%edi
43a526:	83 fb ff             	cmp    $0xffffffff,%ebx
43a529:	74 20                	je     0x43a54b
43a52b:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a52e:	89 98 a0 00 00 00    	mov    %ebx,0xa0(%eax)
43a534:	85 db                	test   %ebx,%ebx
43a536:	74 1e                	je     0x43a556
43a538:	8d 4d ec             	lea    -0x14(%ebp),%ecx
43a53b:	8b 55 fc             	mov    -0x4(%ebp),%edx
43a53e:	8b c3                	mov    %ebx,%eax
43a540:	66 be c5 ff          	mov    $0xffc5,%si
43a544:	e8 1f 8f fc ff       	call   0x403468
43a549:	eb 0b                	jmp    0x43a556
43a54b:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a54e:	33 d2                	xor    %edx,%edx
43a550:	89 90 a0 00 00 00    	mov    %edx,0xa0(%eax)
43a556:	85 ff                	test   %edi,%edi
43a558:	74 0e                	je     0x43a568
43a55a:	8b 55 fc             	mov    -0x4(%ebp),%edx
43a55d:	8b c7                	mov    %edi,%eax
43a55f:	66 be bf ff          	mov    $0xffbf,%si
43a563:	e8 00 8f fc ff       	call   0x403468
43a568:	33 c0                	xor    %eax,%eax
43a56a:	5a                   	pop    %edx
43a56b:	59                   	pop    %ecx
43a56c:	59                   	pop    %ecx
43a56d:	64 89 10             	mov    %edx,%fs:(%eax)
43a570:	68 86 a5 43 00       	push   $0x43a586
43a575:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a578:	66 81 60 54 ff fb    	andw   $0xfbff,0x54(%eax)
43a57e:	c3                   	ret
43a57f:	e9 3c 94 fc ff       	jmp    0x4039c0
43a584:	eb ef                	jmp    0x43a575
43a586:	5f                   	pop    %edi
43a587:	5e                   	pop    %esi
43a588:	5b                   	pop    %ebx
43a589:	8b e5                	mov    %ebp,%esp
43a58b:	5d                   	pop    %ebp
43a58c:	c3                   	ret
43a58d:	8d 40 00             	lea    0x0(%eax),%eax
43a590:	53                   	push   %ebx
43a591:	56                   	push   %esi
43a592:	57                   	push   %edi
43a593:	8b f9                	mov    %ecx,%edi
43a595:	8b f2                	mov    %edx,%esi
43a597:	8b d8                	mov    %eax,%ebx
43a599:	8b c3                	mov    %ebx,%eax
43a59b:	8b 15 28 6d 43 00    	mov    0x436d28,%edx
43a5a1:	e8 52 8e fc ff       	call   0x4033f8
43a5a6:	84 c0                	test   %al,%al
43a5a8:	75 0c                	jne    0x43a5b6
43a5aa:	33 c9                	xor    %ecx,%ecx
43a5ac:	8a 53 57             	mov    0x57(%ebx),%dl
43a5af:	8b c3                	mov    %ebx,%eax
43a5b1:	e8 12 0b 00 00       	call   0x43b0c8
43a5b6:	3b 73 30             	cmp    0x30(%ebx),%esi
43a5b9:	74 0b                	je     0x43a5c6
43a5bb:	8b d7                	mov    %edi,%edx
43a5bd:	8b c3                	mov    %ebx,%eax
43a5bf:	e8 08 19 00 00       	call   0x43becc
43a5c4:	eb 09                	jmp    0x43a5cf
43a5c6:	8b d7                	mov    %edi,%edx
43a5c8:	8b c3                	mov    %ebx,%eax
43a5ca:	e8 71 00 00 00       	call   0x43a640
43a5cf:	85 f6                	test   %esi,%esi
43a5d1:	74 05                	je     0x43a5d8
43a5d3:	83 fe ff             	cmp    $0xffffffff,%esi
43a5d6:	75 09                	jne    0x43a5e1
43a5d8:	33 d2                	xor    %edx,%edx
43a5da:	8b c3                	mov    %ebx,%eax
43a5dc:	8b 08                	mov    (%eax),%ecx
43a5de:	ff 51 68             	call   *0x68(%ecx)
43a5e1:	5f                   	pop    %edi
43a5e2:	5e                   	pop    %esi
43a5e3:	5b                   	pop    %ebx
43a5e4:	c3                   	ret
43a5e5:	8d 40 00             	lea    0x0(%eax),%eax
43a5e8:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
43a5ec:	75 07                	jne    0x43a5f5
43a5ee:	c6 80 50 01 00 00 01 	movb   $0x1,0x150(%eax)
43a5f5:	89 90 58 01 00 00    	mov    %edx,0x158(%eax)
43a5fb:	c3                   	ret
43a5fc:	53                   	push   %ebx
43a5fd:	56                   	push   %esi
43a5fe:	8b f2                	mov    %edx,%esi
43a600:	8b d8                	mov    %eax,%ebx
43a602:	f6 43 1c 01          	testb  $0x1,0x1c(%ebx)
43a606:	75 07                	jne    0x43a60f
43a608:	c6 83 50 01 00 00 00 	movb   $0x0,0x150(%ebx)
43a60f:	8d 83 54 01 00 00    	lea    0x154(%ebx),%eax
43a615:	8b d6                	mov    %esi,%edx
43a617:	e8 f4 99 fc ff       	call   0x404010
43a61c:	5e                   	pop    %esi
43a61d:	5b                   	pop    %ebx
43a61e:	c3                   	ret
43a61f:	90                   	nop
43a620:	8b 48 40             	mov    0x40(%eax),%ecx
43a623:	89 0a                	mov    %ecx,(%edx)
43a625:	8b 48 44             	mov    0x44(%eax),%ecx
43a628:	89 4a 04             	mov    %ecx,0x4(%edx)
43a62b:	8b 48 40             	mov    0x40(%eax),%ecx
43a62e:	03 48 48             	add    0x48(%eax),%ecx
43a631:	89 4a 08             	mov    %ecx,0x8(%edx)
43a634:	8b 48 44             	mov    0x44(%eax),%ecx
43a637:	03 48 4c             	add    0x4c(%eax),%ecx
43a63a:	89 4a 0c             	mov    %ecx,0xc(%edx)
43a63d:	c3                   	ret
43a63e:	8b c0                	mov    %eax,%eax
43a640:	53                   	push   %ebx
43a641:	56                   	push   %esi
43a642:	57                   	push   %edi
43a643:	55                   	push   %ebp
43a644:	8b f0                	mov    %eax,%esi
43a646:	8b 42 08             	mov    0x8(%edx),%eax
43a649:	8b 3a                	mov    (%edx),%edi
43a64b:	2b c7                	sub    %edi,%eax
43a64d:	50                   	push   %eax
43a64e:	8b 42 0c             	mov    0xc(%edx),%eax
43a651:	8b 6a 04             	mov    0x4(%edx),%ebp
43a654:	2b c5                	sub    %ebp,%eax
43a656:	50                   	push   %eax
43a657:	8b cd                	mov    %ebp,%ecx
43a659:	8b d7                	mov    %edi,%edx
43a65b:	8b c6                	mov    %esi,%eax
43a65d:	8b 18                	mov    (%eax),%ebx
43a65f:	ff 93 84 00 00 00    	call   *0x84(%ebx)
43a665:	5d                   	pop    %ebp
43a666:	5f                   	pop    %edi
43a667:	5e                   	pop    %esi
43a668:	5b                   	pop    %ebx
43a669:	c3                   	ret
43a66a:	8b c0                	mov    %eax,%eax
43a66c:	33 c9                	xor    %ecx,%ecx
43a66e:	89 0a                	mov    %ecx,(%edx)
43a670:	33 c9                	xor    %ecx,%ecx
43a672:	89 4a 04             	mov    %ecx,0x4(%edx)
43a675:	8b 48 48             	mov    0x48(%eax),%ecx
43a678:	89 4a 08             	mov    %ecx,0x8(%edx)
43a67b:	8b 40 4c             	mov    0x4c(%eax),%eax
43a67e:	89 42 0c             	mov    %eax,0xc(%edx)
43a681:	c3                   	ret
43a682:	8b c0                	mov    %eax,%eax
43a684:	53                   	push   %ebx
43a685:	83 c4 f0             	add    $0xfffffff0,%esp
43a688:	8b d8                	mov    %eax,%ebx
43a68a:	8b d4                	mov    %esp,%edx
43a68c:	8b c3                	mov    %ebx,%eax
43a68e:	8b 08                	mov    (%eax),%ecx
43a690:	ff 51 44             	call   *0x44(%ecx)
43a693:	8b 44 24 08          	mov    0x8(%esp),%eax
43a697:	83 c4 10             	add    $0x10,%esp
43a69a:	5b                   	pop    %ebx
43a69b:	c3                   	ret
43a69c:	53                   	push   %ebx
43a69d:	56                   	push   %esi
43a69e:	83 c4 f8             	add    $0xfffffff8,%esp
43a6a1:	8b f2                	mov    %edx,%esi
43a6a3:	8b d8                	mov    %eax,%ebx
43a6a5:	8b c3                	mov    %ebx,%eax
43a6a7:	e8 1c 00 00 00       	call   0x43a6c8
43a6ac:	8b d0                	mov    %eax,%edx
43a6ae:	8b cc                	mov    %esp,%ecx
43a6b0:	8b c6                	mov    %esi,%eax
43a6b2:	e8 79 82 fd ff       	call   0x412930
43a6b7:	8b d4                	mov    %esp,%edx
43a6b9:	8b c3                	mov    %ebx,%eax
43a6bb:	e8 4c 04 00 00       	call   0x43ab0c
43a6c0:	59                   	pop    %ecx
43a6c1:	5a                   	pop    %edx
43a6c2:	5e                   	pop    %esi
43a6c3:	5b                   	pop    %ebx
43a6c4:	c3                   	ret
43a6c5:	8d 40 00             	lea    0x0(%eax),%eax
43a6c8:	53                   	push   %ebx
43a6c9:	83 c4 f0             	add    $0xfffffff0,%esp
43a6cc:	8b d8                	mov    %eax,%ebx
43a6ce:	8b d4                	mov    %esp,%edx
43a6d0:	8b c3                	mov    %ebx,%eax
43a6d2:	8b 08                	mov    (%eax),%ecx
43a6d4:	ff 51 44             	call   *0x44(%ecx)
43a6d7:	8b 44 24 0c          	mov    0xc(%esp),%eax
43a6db:	83 c4 10             	add    $0x10,%esp
43a6de:	5b                   	pop    %ebx
43a6df:	c3                   	ret
43a6e0:	53                   	push   %ebx
43a6e1:	56                   	push   %esi
43a6e2:	83 c4 f8             	add    $0xfffffff8,%esp
43a6e5:	8b f2                	mov    %edx,%esi
43a6e7:	8b d8                	mov    %eax,%ebx
43a6e9:	8b c3                	mov    %ebx,%eax
43a6eb:	e8 94 ff ff ff       	call   0x43a684
43a6f0:	8b cc                	mov    %esp,%ecx
43a6f2:	8b d6                	mov    %esi,%edx
43a6f4:	e8 37 82 fd ff       	call   0x412930
43a6f9:	8b d4                	mov    %esp,%edx
43a6fb:	8b c3                	mov    %ebx,%eax
43a6fd:	e8 0a 04 00 00       	call   0x43ab0c
43a702:	59                   	pop    %ecx
43a703:	5a                   	pop    %edx
43a704:	5e                   	pop    %esi
43a705:	5b                   	pop    %ebx
43a706:	c3                   	ret
43a707:	90                   	nop
43a708:	55                   	push   %ebp
43a709:	8b ec                	mov    %esp,%ebp
43a70b:	83 c4 f4             	add    $0xfffffff4,%esp
43a70e:	53                   	push   %ebx
43a70f:	56                   	push   %esi
43a710:	33 c9                	xor    %ecx,%ecx
43a712:	89 4d f4             	mov    %ecx,-0xc(%ebp)
43a715:	8b f2                	mov    %edx,%esi
43a717:	8b d8                	mov    %eax,%ebx
43a719:	33 c0                	xor    %eax,%eax
43a71b:	55                   	push   %ebp
43a71c:	68 89 a7 43 00       	push   $0x43a789
43a721:	64 ff 30             	push   %fs:(%eax)
43a724:	64 89 20             	mov    %esp,%fs:(%eax)
43a727:	83 7b 30 00          	cmpl   $0x0,0x30(%ebx)
43a72b:	75 31                	jne    0x43a75e
43a72d:	8b 43 08             	mov    0x8(%ebx),%eax
43a730:	89 45 f8             	mov    %eax,-0x8(%ebp)
43a733:	c6 45 fc 0b          	movb   $0xb,-0x4(%ebp)
43a737:	8d 45 f8             	lea    -0x8(%ebp),%eax
43a73a:	50                   	push   %eax
43a73b:	6a 00                	push   $0x0
43a73d:	8d 55 f4             	lea    -0xc(%ebp),%edx
43a740:	a1 50 7f 46 00       	mov    0x467f50,%eax
43a745:	e8 d6 b3 fc ff       	call   0x405b20
43a74a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
43a74d:	b2 01                	mov    $0x1,%dl
43a74f:	a1 c4 19 41 00       	mov    0x4119c4,%eax
43a754:	e8 43 10 fd ff       	call   0x40b79c
43a759:	e8 9a 92 fc ff       	call   0x4039f8
43a75e:	8b d6                	mov    %esi,%edx
43a760:	8b 43 30             	mov    0x30(%ebx),%eax
43a763:	8b 08                	mov    (%eax),%ecx
43a765:	ff 51 40             	call   *0x40(%ecx)
43a768:	8b 43 40             	mov    0x40(%ebx),%eax
43a76b:	01 06                	add    %eax,(%esi)
43a76d:	8b 43 44             	mov    0x44(%ebx),%eax
43a770:	01 46 04             	add    %eax,0x4(%esi)
43a773:	33 c0                	xor    %eax,%eax
43a775:	5a                   	pop    %edx
43a776:	59                   	pop    %ecx
43a777:	59                   	pop    %ecx
43a778:	64 89 10             	mov    %edx,%fs:(%eax)
43a77b:	68 90 a7 43 00       	push   $0x43a790
43a780:	8d 45 f4             	lea    -0xc(%ebp),%eax
43a783:	e8 34 98 fc ff       	call   0x403fbc
43a788:	c3                   	ret
43a789:	e9 32 92 fc ff       	jmp    0x4039c0
43a78e:	eb f0                	jmp    0x43a780
43a790:	5e                   	pop    %esi
43a791:	5b                   	pop    %ebx
43a792:	8b e5                	mov    %ebp,%esp
43a794:	5d                   	pop    %ebp
43a795:	c3                   	ret
43a796:	8b c0                	mov    %eax,%eax
43a798:	53                   	push   %ebx
43a799:	56                   	push   %esi
43a79a:	57                   	push   %edi
43a79b:	83 c4 f8             	add    $0xfffffff8,%esp
43a79e:	8b f9                	mov    %ecx,%edi
43a7a0:	8b f2                	mov    %edx,%esi
43a7a2:	8b d8                	mov    %eax,%ebx
43a7a4:	8b d4                	mov    %esp,%edx
43a7a6:	8b c3                	mov    %ebx,%eax
43a7a8:	8b 08                	mov    (%eax),%ecx
43a7aa:	ff 51 40             	call   *0x40(%ecx)
43a7ad:	8b 06                	mov    (%esi),%eax
43a7af:	03 04 24             	add    (%esp),%eax
43a7b2:	89 07                	mov    %eax,(%edi)
43a7b4:	8b 46 04             	mov    0x4(%esi),%eax
43a7b7:	03 44 24 04          	add    0x4(%esp),%eax
43a7bb:	89 47 04             	mov    %eax,0x4(%edi)
43a7be:	59                   	pop    %ecx
43a7bf:	5a                   	pop    %edx
43a7c0:	5f                   	pop    %edi
43a7c1:	5e                   	pop    %esi
43a7c2:	5b                   	pop    %ebx
43a7c3:	c3                   	ret
43a7c4:	53                   	push   %ebx
43a7c5:	56                   	push   %esi
43a7c6:	57                   	push   %edi
43a7c7:	83 c4 f8             	add    $0xfffffff8,%esp
43a7ca:	8b f9                	mov    %ecx,%edi
43a7cc:	8b f2                	mov    %edx,%esi
43a7ce:	8b d8                	mov    %eax,%ebx
43a7d0:	8b d4                	mov    %esp,%edx
43a7d2:	8b c3                	mov    %ebx,%eax
43a7d4:	8b 08                	mov    (%eax),%ecx
43a7d6:	ff 51 40             	call   *0x40(%ecx)
43a7d9:	8b 06                	mov    (%esi),%eax
43a7db:	2b 04 24             	sub    (%esp),%eax
43a7de:	89 07                	mov    %eax,(%edi)
43a7e0:	8b 46 04             	mov    0x4(%esi),%eax
43a7e3:	2b 44 24 04          	sub    0x4(%esp),%eax
43a7e7:	89 47 04             	mov    %eax,0x4(%edi)
43a7ea:	59                   	pop    %ecx
43a7eb:	5a                   	pop    %edx
43a7ec:	5f                   	pop    %edi
43a7ed:	5e                   	pop    %esi
43a7ee:	5b                   	pop    %ebx
43a7ef:	c3                   	ret
43a7f0:	53                   	push   %ebx
43a7f1:	56                   	push   %esi
43a7f2:	8b f2                	mov    %edx,%esi
43a7f4:	8b d8                	mov    %eax,%ebx
43a7f6:	85 db                	test   %ebx,%ebx
43a7f8:	74 21                	je     0x43a81b
43a7fa:	8b c3                	mov    %ebx,%eax
43a7fc:	8b 15 14 02 45 00    	mov    0x450214,%edx
43a802:	e8 f1 8b fc ff       	call   0x4033f8
43a807:	84 c0                	test   %al,%al
43a809:	74 09                	je     0x43a814
43a80b:	8b d6                	mov    %esi,%edx
43a80d:	8b c3                	mov    %ebx,%eax
43a80f:	e8 14 b4 01 00       	call   0x455c28
43a814:	8b 5b 30             	mov    0x30(%ebx),%ebx
43a817:	85 db                	test   %ebx,%ebx
43a819:	75 df                	jne    0x43a7fa
43a81b:	5e                   	pop    %esi
43a81c:	5b                   	pop    %ebx
43a81d:	c3                   	ret
43a81e:	8b c0                	mov    %eax,%eax
43a820:	55                   	push   %ebp
43a821:	8b ec                	mov    %esp,%ebp
43a823:	83 c4 f0             	add    $0xfffffff0,%esp
43a826:	53                   	push   %ebx
43a827:	56                   	push   %esi
43a828:	57                   	push   %edi
43a829:	89 4d fc             	mov    %ecx,-0x4(%ebp)
43a82c:	8b fa                	mov    %edx,%edi
43a82e:	8b d8                	mov    %eax,%ebx
43a830:	8b b3 a0 00 00 00    	mov    0xa0(%ebx),%esi
43a836:	85 f6                	test   %esi,%esi
43a838:	74 40                	je     0x43a87a
43a83a:	83 3d 38 9b 46 00 00 	cmpl   $0x0,0x469b38
43a841:	75 37                	jne    0x43a87a
43a843:	66 a1 84 a8 43 00    	mov    0x43a884,%ax
43a849:	66 23 43 1c          	and    0x1c(%ebx),%ax
43a84d:	66 8b 15 88 a8 43 00 	mov    0x43a888,%dx
43a854:	66 3b d0             	cmp    %ax,%dx
43a857:	75 21                	jne    0x43a87a
43a859:	89 7d f0             	mov    %edi,-0x10(%ebp)
43a85c:	8b 45 fc             	mov    -0x4(%ebp),%eax