4037d0:	56                   	push   %esi
4037d1:	8b f1                	mov    %ecx,%esi
4037d3:	8b 06                	mov    (%esi),%eax
4037d5:	ff 50 10             	call   *0x10(%eax)
4037d8:	66 3d ff ff          	cmp    $0xffff,%ax
4037dc:	75 07                	jne    0x4037e5
4037de:	b8 ff ff 00 00       	mov    $0xffff,%eax
4037e3:	5e                   	pop    %esi
4037e4:	c3                   	ret
4037e5:	8b 46 30             	mov    0x30(%esi),%eax
4037e8:	ff 08                	decl   (%eax)
4037ea:	8b 46 20             	mov    0x20(%esi),%eax
4037ed:	8b 08                	mov    (%eax),%ecx
4037ef:	8d 51 02             	lea    0x2(%ecx),%edx
4037f2:	89 10                	mov    %edx,(%eax)
4037f4:	0f b7 01             	movzwl (%ecx),%eax
4037f7:	5e                   	pop    %esi
4037f8:	c3                   	ret
4037f9:	8b 44 24 04          	mov    0x4(%esp),%eax
4037fd:	8b 0d 10 76 41 00    	mov    0x417610,%ecx
403803:	89 08                	mov    %ecx,(%eax)
403805:	33 c9                	xor    %ecx,%ecx
403807:	89 48 08             	mov    %ecx,0x8(%eax)
40380a:	89 48 0c             	mov    %ecx,0xc(%eax)
40380d:	89 48 10             	mov    %ecx,0x10(%eax)
403810:	c2 10 00             	ret    $0x10
403813:	8b 44 24 04          	mov    0x4(%esp),%eax
403817:	8b 0d 10 76 41 00    	mov    0x417610,%ecx
40381d:	89 08                	mov    %ecx,(%eax)
40381f:	33 c9                	xor    %ecx,%ecx
403821:	89 48 08             	mov    %ecx,0x8(%eax)
403824:	89 48 0c             	mov    %ecx,0xc(%eax)
403827:	89 48 10             	mov    %ecx,0x10(%eax)
40382a:	c2 20 00             	ret    $0x20
40382d:	56                   	push   %esi
40382e:	8d 71 fc             	lea    -0x4(%ecx),%esi
403831:	8b ce                	mov    %esi,%ecx
403833:	e8 9a fe ff ff       	call   0x4036d2
403838:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
40383d:	74 07                	je     0x403846
40383f:	56                   	push   %esi
403840:	e8 ea 21 00 00       	call   0x405a2f
403845:	59                   	pop    %ecx
403846:	8b c6                	mov    %esi,%eax
403848:	5e                   	pop    %esi
403849:	c2 04 00             	ret    $0x4
40384c:	56                   	push   %esi
40384d:	8b f1                	mov    %ecx,%esi
40384f:	e8 f2 fe ff ff       	call   0x403746
403854:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
403859:	74 07                	je     0x403862
40385b:	56                   	push   %esi
40385c:	e8 ce 21 00 00       	call   0x405a2f
403861:	59                   	pop    %ecx
403862:	8b c6                	mov    %esi,%eax
403864:	5e                   	pop    %esi
403865:	c2 04 00             	ret    $0x4
403868:	55                   	push   %ebp
403869:	8b ec                	mov    %esp,%ebp
40386b:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
40386f:	75 19                	jne    0x40388a
403871:	83 79 18 10          	cmpl   $0x10,0x18(%ecx)
403875:	72 05                	jb     0x40387c
403877:	8b 49 04             	mov    0x4(%ecx),%ecx
40387a:	eb 03                	jmp    0x40387f
40387c:	83 c1 04             	add    $0x4,%ecx
40387f:	8b 45 08             	mov    0x8(%ebp),%eax
403882:	8a 55 10             	mov    0x10(%ebp),%dl
403885:	88 14 01             	mov    %dl,(%ecx,%eax,1)
403888:	eb 22                	jmp    0x4038ac
40388a:	83 79 18 10          	cmpl   $0x10,0x18(%ecx)
40388e:	72 05                	jb     0x403895
403890:	8b 49 04             	mov    0x4(%ecx),%ecx
403893:	eb 03                	jmp    0x403898
403895:	83 c1 04             	add    $0x4,%ecx
403898:	ff 75 10             	push   0x10(%ebp)
40389b:	8b 45 08             	mov    0x8(%ebp),%eax
40389e:	ff 75 0c             	push   0xc(%ebp)
4038a1:	03 c8                	add    %eax,%ecx
4038a3:	51                   	push   %ecx
4038a4:	e8 06 fc ff ff       	call   0x4034af
4038a9:	83 c4 0c             	add    $0xc,%esp
4038ac:	5d                   	pop    %ebp
4038ad:	c2 0c 00             	ret    $0xc
4038b0:	8d 51 18             	lea    0x18(%ecx),%edx
4038b3:	89 51 20             	mov    %edx,0x20(%ecx)
4038b6:	8d 51 1c             	lea    0x1c(%ecx),%edx
4038b9:	89 51 24             	mov    %edx,0x24(%ecx)
4038bc:	8d 51 28             	lea    0x28(%ecx),%edx
4038bf:	89 51 30             	mov    %edx,0x30(%ecx)
4038c2:	8d 41 08             	lea    0x8(%ecx),%eax
4038c5:	89 41 10             	mov    %eax,0x10(%ecx)
4038c8:	8d 51 2c             	lea    0x2c(%ecx),%edx
4038cb:	89 51 34             	mov    %edx,0x34(%ecx)
4038ce:	33 d2                	xor    %edx,%edx
4038d0:	8d 41 0c             	lea    0xc(%ecx),%eax
4038d3:	89 41 14             	mov    %eax,0x14(%ecx)
4038d6:	89 10                	mov    %edx,(%eax)
4038d8:	8b 41 24             	mov    0x24(%ecx),%eax
4038db:	89 10                	mov    %edx,(%eax)
4038dd:	8b 41 34             	mov    0x34(%ecx),%eax
4038e0:	89 10                	mov    %edx,(%eax)
4038e2:	8b 41 10             	mov    0x10(%ecx),%eax
4038e5:	89 10                	mov    %edx,(%eax)
4038e7:	8b 41 20             	mov    0x20(%ecx),%eax
4038ea:	89 10                	mov    %edx,(%eax)
4038ec:	8b 41 30             	mov    0x30(%ecx),%eax
4038ef:	89 10                	mov    %edx,(%eax)
4038f1:	c3                   	ret
4038f2:	53                   	push   %ebx
4038f3:	8b 5c 24 08          	mov    0x8(%esp),%ebx
4038f7:	56                   	push   %esi
4038f8:	8b 74 24 10          	mov    0x10(%esp),%esi
4038fc:	57                   	push   %edi
4038fd:	8b f9                	mov    %ecx,%edi
4038ff:	83 27 00             	andl   $0x0,(%edi)
403902:	85 f6                	test   %esi,%esi
403904:	74 29                	je     0x40392f
403906:	85 db                	test   %ebx,%ebx
403908:	74 25                	je     0x40392f
40390a:	8b 56 18             	mov    0x18(%esi),%edx
40390d:	83 fa 10             	cmp    $0x10,%edx
403910:	8d 46 04             	lea    0x4(%esi),%eax
403913:	72 04                	jb     0x403919
403915:	8b 08                	mov    (%eax),%ecx
403917:	eb 02                	jmp    0x40391b
403919:	8b c8                	mov    %eax,%ecx
40391b:	3b cb                	cmp    %ebx,%ecx
40391d:	77 10                	ja     0x40392f
40391f:	83 fa 10             	cmp    $0x10,%edx
403922:	72 02                	jb     0x403926
403924:	8b 00                	mov    (%eax),%eax
403926:	8b 4e 14             	mov    0x14(%esi),%ecx
403929:	03 c8                	add    %eax,%ecx
40392b:	3b d9                	cmp    %ecx,%ebx
40392d:	76 05                	jbe    0x403934
40392f:	e8 40 3d 00 00       	call   0x407674
403934:	89 37                	mov    %esi,(%edi)
403936:	89 5f 04             	mov    %ebx,0x4(%edi)
403939:	8b c7                	mov    %edi,%eax
40393b:	5f                   	pop    %edi
40393c:	5e                   	pop    %esi
40393d:	5b                   	pop    %ebx
40393e:	c2 08 00             	ret    $0x8
403941:	55                   	push   %ebp
403942:	8b ec                	mov    %esp,%ebp
403944:	51                   	push   %ecx
403945:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
403949:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40394d:	57                   	push   %edi
40394e:	8b f9                	mov    %ecx,%edi
403950:	7e 6b                	jle    0x4039bd
403952:	53                   	push   %ebx
403953:	8b 5d 08             	mov    0x8(%ebp),%ebx
403956:	56                   	push   %esi
403957:	8b 47 20             	mov    0x20(%edi),%eax
40395a:	83 38 00             	cmpl   $0x0,(%eax)
40395d:	74 07                	je     0x403966
40395f:	8b 4f 30             	mov    0x30(%edi),%ecx
403962:	8b 31                	mov    (%ecx),%esi
403964:	eb 02                	jmp    0x403968
403966:	33 f6                	xor    %esi,%esi
403968:	85 f6                	test   %esi,%esi
40396a:	7e 2e                	jle    0x40399a
40396c:	39 75 10             	cmp    %esi,0x10(%ebp)
40396f:	7d 03                	jge    0x403974
403971:	8b 75 10             	mov    0x10(%ebp),%esi
403974:	56                   	push   %esi
403975:	ff 30                	push   (%eax)
403977:	ff 75 0c             	push   0xc(%ebp)
40397a:	53                   	push   %ebx
40397b:	e8 0e fe ff ff       	call   0x40378e
403980:	8b 47 30             	mov    0x30(%edi),%eax
403983:	29 30                	sub    %esi,(%eax)
403985:	8b 47 20             	mov    0x20(%edi),%eax
403988:	01 75 fc             	add    %esi,-0x4(%ebp)
40398b:	29 75 10             	sub    %esi,0x10(%ebp)
40398e:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
403991:	83 c4 10             	add    $0x10,%esp
403994:	03 d9                	add    %ecx,%ebx
403996:	01 08                	add    %ecx,(%eax)
403998:	eb 1b                	jmp    0x4039b5
40399a:	8b 07                	mov    (%edi),%eax
40399c:	8b cf                	mov    %edi,%ecx
40399e:	ff 50 14             	call   *0x14(%eax)
4039a1:	0f b7 c0             	movzwl %ax,%eax
4039a4:	66 3d ff ff          	cmp    $0xffff,%ax
4039a8:	74 11                	je     0x4039bb
4039aa:	66 89 03             	mov    %ax,(%ebx)
4039ad:	43                   	inc    %ebx
4039ae:	43                   	inc    %ebx
4039af:	ff 45 fc             	incl   -0x4(%ebp)
4039b2:	ff 4d 10             	decl   0x10(%ebp)
4039b5:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4039b9:	7f 9c                	jg     0x403957
4039bb:	5e                   	pop    %esi
4039bc:	5b                   	pop    %ebx
4039bd:	8b 45 fc             	mov    -0x4(%ebp),%eax
4039c0:	5f                   	pop    %edi
4039c1:	c9                   	leave
4039c2:	c2 0c 00             	ret    $0xc
4039c5:	55                   	push   %ebp
4039c6:	8b ec                	mov    %esp,%ebp
4039c8:	51                   	push   %ecx
4039c9:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4039cd:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4039d1:	57                   	push   %edi
4039d2:	8b f9                	mov    %ecx,%edi
4039d4:	7e 69                	jle    0x403a3f
4039d6:	53                   	push   %ebx
4039d7:	8b 5d 08             	mov    0x8(%ebp),%ebx
4039da:	56                   	push   %esi
4039db:	8b 47 24             	mov    0x24(%edi),%eax
4039de:	83 38 00             	cmpl   $0x0,(%eax)
4039e1:	74 07                	je     0x4039ea
4039e3:	8b 4f 34             	mov    0x34(%edi),%ecx
4039e6:	8b 09                	mov    (%ecx),%ecx
4039e8:	eb 02                	jmp    0x4039ec
4039ea:	33 c9                	xor    %ecx,%ecx
4039ec:	85 c9                	test   %ecx,%ecx
4039ee:	7e 2e                	jle    0x403a1e
4039f0:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
4039f3:	8b f1                	mov    %ecx,%esi
4039f5:	7d 03                	jge    0x4039fa
4039f7:	8b 75 0c             	mov    0xc(%ebp),%esi
4039fa:	56                   	push   %esi
4039fb:	53                   	push   %ebx
4039fc:	51                   	push   %ecx
4039fd:	ff 30                	push   (%eax)
4039ff:	e8 8a fd ff ff       	call   0x40378e
403a04:	8b 47 34             	mov    0x34(%edi),%eax
403a07:	29 30                	sub    %esi,(%eax)
403a09:	8b 47 24             	mov    0x24(%edi),%eax
403a0c:	01 75 fc             	add    %esi,-0x4(%ebp)
403a0f:	29 75 0c             	sub    %esi,0xc(%ebp)
403a12:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
403a15:	83 c4 10             	add    $0x10,%esp
403a18:	03 d9                	add    %ecx,%ebx
403a1a:	01 08                	add    %ecx,(%eax)
403a1c:	eb 19                	jmp    0x403a37
403a1e:	0f b7 03             	movzwl (%ebx),%eax
403a21:	8b 17                	mov    (%edi),%edx
403a23:	50                   	push   %eax
403a24:	8b cf                	mov    %edi,%ecx
403a26:	ff 52 04             	call   *0x4(%edx)
403a29:	66 3d ff ff          	cmp    $0xffff,%ax
403a2d:	74 0e                	je     0x403a3d
403a2f:	43                   	inc    %ebx
403a30:	43                   	inc    %ebx
403a31:	ff 45 fc             	incl   -0x4(%ebp)
403a34:	ff 4d 0c             	decl   0xc(%ebp)
403a37:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
403a3b:	7f 9e                	jg     0x4039db
403a3d:	5e                   	pop    %esi
403a3e:	5b                   	pop    %ebx
403a3f:	8b 45 fc             	mov    -0x4(%ebp),%eax
403a42:	5f                   	pop    %edi
403a43:	c9                   	leave
403a44:	c2 08 00             	ret    $0x8
403a47:	6a 04                	push   $0x4
403a49:	b8 1a 5c 41 00       	mov    $0x415c1a,%eax
403a4e:	e8 98 2d 00 00       	call   0x4067eb
403a53:	8b f1                	mov    %ecx,%esi
403a55:	89 75 f0             	mov    %esi,-0x10(%ebp)
403a58:	8d 4e 04             	lea    0x4(%esi),%ecx
403a5b:	c7 06 04 75 41 00    	movl   $0x417504,(%esi)
403a61:	e8 42 f8 ff ff       	call   0x4032a8
403a66:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
403a6a:	6a 04                	push   $0x4
403a6c:	e8 67 25 00 00       	call   0x405fd8
403a71:	85 c0                	test   %eax,%eax
403a73:	59                   	pop    %ecx
403a74:	74 09                	je     0x403a7f
403a76:	8b c8                	mov    %eax,%ecx
403a78:	e8 04 fb ff ff       	call   0x403581
403a7d:	eb 02                	jmp    0x403a81
403a7f:	33 c0                	xor    %eax,%eax
403a81:	8b ce                	mov    %esi,%ecx
403a83:	89 46 38             	mov    %eax,0x38(%esi)
403a86:	e8 25 fe ff ff       	call   0x4038b0
403a8b:	8b c6                	mov    %esi,%eax
403a8d:	e8 f8 2d 00 00       	call   0x40688a
403a92:	c3                   	ret
403a93:	83 7c 24 08 01       	cmpl   $0x1,0x8(%esp)
403a98:	56                   	push   %esi
403a99:	8b f1                	mov    %ecx,%esi
403a9b:	0f 94 c0             	sete   %al
403a9e:	88 46 48             	mov    %al,0x48(%esi)
403aa1:	c6 46 42 00          	movb   $0x0,0x42(%esi)
403aa5:	e8 06 fe ff ff       	call   0x4038b0
403aaa:	8b 44 24 08          	mov    0x8(%esp),%eax
403aae:	89 46 4c             	mov    %eax,0x4c(%esi)
403ab1:	a1 24 d7 41 00       	mov    0x41d724,%eax
403ab6:	83 66 3c 00          	andl   $0x0,0x3c(%esi)
403aba:	89 46 44             	mov    %eax,0x44(%esi)
403abd:	5e                   	pop    %esi
403abe:	c2 08 00             	ret    $0x8
403ac1:	56                   	push   %esi
403ac2:	8b f1                	mov    %ecx,%esi
403ac4:	6a 00                	push   $0x0
403ac6:	c7 46 18 0f 00 00 00 	movl   $0xf,0x18(%esi)
403acd:	e8 ae e1 ff ff       	call   0x401c80
403ad2:	8b c6                	mov    %esi,%eax
403ad4:	5e                   	pop    %esi
403ad5:	c3                   	ret
403ad6:	56                   	push   %esi
403ad7:	8b f1                	mov    %ecx,%esi
403ad9:	e8 69 ff ff ff       	call   0x403a47
403ade:	6a 00                	push   $0x0
403ae0:	ff 74 24 0c          	push   0xc(%esp)
403ae4:	8b ce                	mov    %esi,%ecx
403ae6:	c7 06 40 75 41 00    	movl   $0x417540,(%esi)
403aec:	e8 a2 ff ff ff       	call   0x403a93
403af1:	8b c6                	mov    %esi,%eax
403af3:	5e                   	pop    %esi
403af4:	c2 04 00             	ret    $0x4
403af7:	c7 01 e4 74 41 00    	movl   $0x4174e4,(%ecx)
403afd:	c3                   	ret
403afe:	ff 74 24 08          	push   0x8(%esp)
403b02:	e8 24 3d 00 00       	call   0x40782b
403b07:	0f b7 c0             	movzwl %ax,%eax
403b0a:	66 3d ff ff          	cmp    $0xffff,%ax
403b0e:	59                   	pop    %ecx
403b0f:	75 03                	jne    0x403b14
403b11:	32 c0                	xor    %al,%al
403b13:	c3                   	ret
403b14:	8b 4c 24 04          	mov    0x4(%esp),%ecx
403b18:	66 89 01             	mov    %ax,(%ecx)
403b1b:	b0 01                	mov    $0x1,%al
403b1d:	c3                   	ret
403b1e:	ff 74 24 08          	push   0x8(%esp)
403b22:	ff 74 24 08          	push   0x8(%esp)
403b26:	e8 51 3f 00 00       	call   0x407a7c
403b2b:	59                   	pop    %ecx
403b2c:	59                   	pop    %ecx
403b2d:	33 c9                	xor    %ecx,%ecx
403b2f:	66 3d ff ff          	cmp    $0xffff,%ax
403b33:	0f 95 c1             	setne  %cl
403b36:	8a c1                	mov    %cl,%al
403b38:	c3                   	ret
403b39:	8b 44 24 04          	mov    0x4(%esp),%eax
403b3d:	0f b7 00             	movzwl (%eax),%eax
403b40:	ff 74 24 08          	push   0x8(%esp)
403b44:	50                   	push   %eax
403b45:	e8 55 41 00 00       	call   0x407c9f
403b4a:	59                   	pop    %ecx
403b4b:	59                   	pop    %ecx
403b4c:	33 c9                	xor    %ecx,%ecx
403b4e:	66 3d ff ff          	cmp    $0xffff,%ax
403b52:	0f 95 c1             	setne  %cl