43c7ba:	e8 a3 ac fc ff       	call   0x407462
43c7bf:	ff 30                	push   (%eax)
43c7c1:	8b cf                	mov    %edi,%ecx
43c7c3:	e8 69 ff ff ff       	call   0x43c731
43c7c8:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
43c7cc:	75 e6                	jne    0x43c7b4
43c7ce:	5f                   	pop    %edi
43c7cf:	5e                   	pop    %esi
43c7d0:	5d                   	pop    %ebp
43c7d1:	c2 04 00             	ret    $0x4
43c7d4:	56                   	push   %esi
43c7d5:	8b 74 24 08          	mov    0x8(%esp),%esi
43c7d9:	85 f6                	test   %esi,%esi
43c7db:	57                   	push   %edi
43c7dc:	8b f9                	mov    %ecx,%edi
43c7de:	75 0b                	jne    0x43c7eb
43c7e0:	ff 74 24 10          	push   0x10(%esp)
43c7e4:	e8 1e ff ff ff       	call   0x43c707
43c7e9:	eb 21                	jmp    0x43c80c
43c7eb:	56                   	push   %esi
43c7ec:	ff 76 04             	push   0x4(%esi)
43c7ef:	e8 bd fe ff ff       	call   0x43c6b1
43c7f4:	8b 4c 24 10          	mov    0x10(%esp),%ecx
43c7f8:	89 48 08             	mov    %ecx,0x8(%eax)
43c7fb:	8b 4e 04             	mov    0x4(%esi),%ecx
43c7fe:	85 c9                	test   %ecx,%ecx
43c800:	74 04                	je     0x43c806
43c802:	89 01                	mov    %eax,(%ecx)
43c804:	eb 03                	jmp    0x43c809
43c806:	89 47 04             	mov    %eax,0x4(%edi)
43c809:	89 46 04             	mov    %eax,0x4(%esi)
43c80c:	5f                   	pop    %edi
43c80d:	5e                   	pop    %esi
43c80e:	c2 08 00             	ret    $0x8
43c811:	56                   	push   %esi
43c812:	8b 74 24 08          	mov    0x8(%esp),%esi
43c816:	85 f6                	test   %esi,%esi
43c818:	57                   	push   %edi
43c819:	8b f9                	mov    %ecx,%edi
43c81b:	75 0b                	jne    0x43c828
43c81d:	ff 74 24 10          	push   0x10(%esp)
43c821:	e8 0b ff ff ff       	call   0x43c731
43c826:	eb 1f                	jmp    0x43c847
43c828:	ff 36                	push   (%esi)
43c82a:	56                   	push   %esi
43c82b:	e8 81 fe ff ff       	call   0x43c6b1
43c830:	8b 4c 24 10          	mov    0x10(%esp),%ecx
43c834:	89 48 08             	mov    %ecx,0x8(%eax)
43c837:	8b 0e                	mov    (%esi),%ecx
43c839:	85 c9                	test   %ecx,%ecx
43c83b:	74 05                	je     0x43c842
43c83d:	89 41 04             	mov    %eax,0x4(%ecx)
43c840:	eb 03                	jmp    0x43c845
43c842:	89 47 08             	mov    %eax,0x8(%edi)
43c845:	89 06                	mov    %eax,(%esi)
43c847:	5f                   	pop    %edi
43c848:	5e                   	pop    %esi
43c849:	c2 08 00             	ret    $0x8
43c84c:	56                   	push   %esi
43c84d:	8b f1                	mov    %ecx,%esi
43c84f:	e8 52 fe ff ff       	call   0x43c6a6
43c854:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
43c859:	74 07                	je     0x43c862
43c85b:	56                   	push   %esi
43c85c:	e8 1f 38 00 00       	call   0x440080
43c861:	59                   	pop    %ecx
43c862:	8b c6                	mov    %esi,%eax
43c864:	5e                   	pop    %esi
43c865:	c2 04 00             	ret    $0x4
43c868:	8b 44 24 08          	mov    0x8(%esp),%eax
43c86c:	85 c0                	test   %eax,%eax
43c86e:	74 23                	je     0x43c893
43c870:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
43c875:	74 1c                	je     0x43c893
43c877:	0f af 44 24 0c       	imul   0xc(%esp),%eax
43c87c:	83 c0 04             	add    $0x4,%eax
43c87f:	50                   	push   %eax
43c880:	e8 d0 37 00 00       	call   0x440055
43c885:	59                   	pop    %ecx
43c886:	8b 4c 24 04          	mov    0x4(%esp),%ecx
43c88a:	8b 11                	mov    (%ecx),%edx
43c88c:	89 10                	mov    %edx,(%eax)
43c88e:	89 01                	mov    %eax,(%ecx)
43c890:	c2 0c 00             	ret    $0xc
43c893:	e8 b3 8b ff ff       	call   0x43544b
43c898:	cc                   	int3
43c899:	85 c9                	test   %ecx,%ecx
43c89b:	74 11                	je     0x43c8ae
43c89d:	56                   	push   %esi
43c89e:	8b 31                	mov    (%ecx),%esi
43c8a0:	51                   	push   %ecx
43c8a1:	e8 da 37 00 00       	call   0x440080
43c8a6:	85 f6                	test   %esi,%esi
43c8a8:	59                   	pop    %ecx
43c8a9:	8b ce                	mov    %esi,%ecx
43c8ab:	75 f1                	jne    0x43c89e
43c8ad:	5e                   	pop    %esi
43c8ae:	c3                   	ret
43c8af:	55                   	push   %ebp
43c8b0:	8b ec                	mov    %esp,%ebp
43c8b2:	53                   	push   %ebx
43c8b3:	56                   	push   %esi
43c8b4:	57                   	push   %edi
43c8b5:	8b 7d 08             	mov    0x8(%ebp),%edi
43c8b8:	33 db                	xor    %ebx,%ebx
43c8ba:	3b fb                	cmp    %ebx,%edi
43c8bc:	8b f1                	mov    %ecx,%esi
43c8be:	0f 8c a5 00 00 00    	jl     0x43c969
43c8c4:	8b 45 0c             	mov    0xc(%ebp),%eax
43c8c7:	3b c3                	cmp    %ebx,%eax
43c8c9:	7c 03                	jl     0x43c8ce
43c8cb:	89 46 10             	mov    %eax,0x10(%esi)
43c8ce:	3b fb                	cmp    %ebx,%edi
43c8d0:	75 14                	jne    0x43c8e6
43c8d2:	ff 76 04             	push   0x4(%esi)
43c8d5:	e8 a6 37 00 00       	call   0x440080
43c8da:	59                   	pop    %ecx
43c8db:	89 5e 0c             	mov    %ebx,0xc(%esi)
43c8de:	89 5e 08             	mov    %ebx,0x8(%esi)
43c8e1:	e9 c4 00 00 00       	jmp    0x43c9aa
43c8e6:	8b 4e 04             	mov    0x4(%esi),%ecx
43c8e9:	3b cb                	cmp    %ebx,%ecx
43c8eb:	75 1f                	jne    0x43c90c
43c8ed:	57                   	push   %edi
43c8ee:	e8 62 37 00 00       	call   0x440055
43c8f3:	57                   	push   %edi
43c8f4:	53                   	push   %ebx
43c8f5:	50                   	push   %eax
43c8f6:	89 46 04             	mov    %eax,0x4(%esi)
43c8f9:	e8 42 b9 fd ff       	call   0x418240
43c8fe:	83 c4 10             	add    $0x10,%esp
43c901:	89 7e 0c             	mov    %edi,0xc(%esi)
43c904:	89 7e 08             	mov    %edi,0x8(%esi)
43c907:	e9 a1 00 00 00       	jmp    0x43c9ad
43c90c:	8b 5e 0c             	mov    0xc(%esi),%ebx
43c90f:	3b fb                	cmp    %ebx,%edi
43c911:	7f 1b                	jg     0x43c92e
43c913:	8b 46 08             	mov    0x8(%esi),%eax
43c916:	3b f8                	cmp    %eax,%edi
43c918:	7e ea                	jle    0x43c904
43c91a:	8b d7                	mov    %edi,%edx
43c91c:	2b d0                	sub    %eax,%edx
43c91e:	52                   	push   %edx
43c91f:	03 c1                	add    %ecx,%eax
43c921:	6a 00                	push   $0x0
43c923:	50                   	push   %eax
43c924:	e8 17 b9 fd ff       	call   0x418240
43c929:	83 c4 0c             	add    $0xc,%esp
43c92c:	eb d6                	jmp    0x43c904
43c92e:	8b 46 10             	mov    0x10(%esi),%eax
43c931:	85 c0                	test   %eax,%eax
43c933:	75 23                	jne    0x43c958
43c935:	8b 46 08             	mov    0x8(%esi),%eax
43c938:	6a 08                	push   $0x8
43c93a:	99                   	cltd
43c93b:	59                   	pop    %ecx
43c93c:	f7 f9                	idiv   %ecx
43c93e:	83 f8 04             	cmp    $0x4,%eax
43c941:	7c 12                	jl     0x43c955
43c943:	b9 00 04 00 00       	mov    $0x400,%ecx
43c948:	3b c1                	cmp    %ecx,%eax
43c94a:	7e 04                	jle    0x43c950
43c94c:	8b c1                	mov    %ecx,%eax
43c94e:	eb 08                	jmp    0x43c958
43c950:	83 f8 04             	cmp    $0x4,%eax
43c953:	7d 03                	jge    0x43c958
43c955:	6a 04                	push   $0x4
43c957:	58                   	pop    %eax
43c958:	03 c3                	add    %ebx,%eax
43c95a:	3b f8                	cmp    %eax,%edi
43c95c:	89 45 08             	mov    %eax,0x8(%ebp)
43c95f:	7c 03                	jl     0x43c964
43c961:	89 7d 08             	mov    %edi,0x8(%ebp)
43c964:	39 5d 08             	cmp    %ebx,0x8(%ebp)
43c967:	7d 05                	jge    0x43c96e
43c969:	e8 dd 8a ff ff       	call   0x43544b
43c96e:	ff 75 08             	push   0x8(%ebp)
43c971:	e8 df 36 00 00       	call   0x440055
43c976:	ff 76 08             	push   0x8(%esi)
43c979:	8b d8                	mov    %eax,%ebx
43c97b:	ff 76 04             	push   0x4(%esi)
43c97e:	53                   	push   %ebx
43c97f:	e8 ec ae fd ff       	call   0x417870
43c984:	8b 46 08             	mov    0x8(%esi),%eax
43c987:	8b cf                	mov    %edi,%ecx
43c989:	2b c8                	sub    %eax,%ecx
43c98b:	51                   	push   %ecx
43c98c:	03 c3                	add    %ebx,%eax
43c98e:	6a 00                	push   $0x0
43c990:	50                   	push   %eax
43c991:	e8 aa b8 fd ff       	call   0x418240
43c996:	ff 76 04             	push   0x4(%esi)
43c999:	e8 e2 36 00 00       	call   0x440080
43c99e:	8b 45 08             	mov    0x8(%ebp),%eax
43c9a1:	83 c4 20             	add    $0x20,%esp
43c9a4:	89 7e 08             	mov    %edi,0x8(%esi)
43c9a7:	89 46 0c             	mov    %eax,0xc(%esi)
43c9aa:	89 5e 04             	mov    %ebx,0x4(%esi)
43c9ad:	5f                   	pop    %edi
43c9ae:	5e                   	pop    %esi
43c9af:	5b                   	pop    %ebx
43c9b0:	5d                   	pop    %ebp
43c9b1:	c2 08 00             	ret    $0x8
43c9b4:	56                   	push   %esi
43c9b5:	8b 74 24 08          	mov    0x8(%esp),%esi
43c9b9:	57                   	push   %edi
43c9ba:	8b f9                	mov    %ecx,%edi
43c9bc:	3b fe                	cmp    %esi,%edi
43c9be:	75 05                	jne    0x43c9c5
43c9c0:	e8 86 8a ff ff       	call   0x43544b
43c9c5:	8b 46 08             	mov    0x8(%esi),%eax
43c9c8:	53                   	push   %ebx
43c9c9:	8b 5f 08             	mov    0x8(%edi),%ebx
43c9cc:	6a ff                	push   $0xffffffff
43c9ce:	03 c3                	add    %ebx,%eax
43c9d0:	50                   	push   %eax
43c9d1:	8b cf                	mov    %edi,%ecx
43c9d3:	e8 d7 fe ff ff       	call   0x43c8af
43c9d8:	ff 76 08             	push   0x8(%esi)
43c9db:	8b 47 04             	mov    0x4(%edi),%eax
43c9de:	ff 76 04             	push   0x4(%esi)
43c9e1:	03 c3                	add    %ebx,%eax
43c9e3:	50                   	push   %eax
43c9e4:	e8 87 ae fd ff       	call   0x417870
43c9e9:	83 c4 0c             	add    $0xc,%esp
43c9ec:	8b c3                	mov    %ebx,%eax
43c9ee:	5b                   	pop    %ebx
43c9ef:	5f                   	pop    %edi
43c9f0:	5e                   	pop    %esi
43c9f1:	c2 04 00             	ret    $0x4
43c9f4:	56                   	push   %esi
43c9f5:	8b 74 24 08          	mov    0x8(%esp),%esi
43c9f9:	57                   	push   %edi
43c9fa:	8b f9                	mov    %ecx,%edi
43c9fc:	3b fe                	cmp    %esi,%edi
43c9fe:	74 1b                	je     0x43ca1b
43ca00:	6a ff                	push   $0xffffffff
43ca02:	ff 76 08             	push   0x8(%esi)
43ca05:	e8 a5 fe ff ff       	call   0x43c8af
43ca0a:	ff 76 08             	push   0x8(%esi)
43ca0d:	ff 76 04             	push   0x4(%esi)
43ca10:	ff 77 04             	push   0x4(%edi)
43ca13:	e8 58 ae fd ff       	call   0x417870
43ca18:	83 c4 0c             	add    $0xc,%esp
43ca1b:	5f                   	pop    %edi
43ca1c:	5e                   	pop    %esi
43ca1d:	c2 04 00             	ret    $0x4
43ca20:	56                   	push   %esi
43ca21:	8b f1                	mov    %ecx,%esi
43ca23:	8b 46 08             	mov    0x8(%esi),%eax
43ca26:	3b 46 0c             	cmp    0xc(%esi),%eax
43ca29:	74 31                	je     0x43ca5c
43ca2b:	57                   	push   %edi
43ca2c:	33 ff                	xor    %edi,%edi
43ca2e:	85 c0                	test   %eax,%eax
43ca30:	74 17                	je     0x43ca49
43ca32:	50                   	push   %eax
43ca33:	e8 1d 36 00 00       	call   0x440055
43ca38:	ff 76 08             	push   0x8(%esi)
43ca3b:	8b f8                	mov    %eax,%edi
43ca3d:	ff 76 04             	push   0x4(%esi)
43ca40:	57                   	push   %edi
43ca41:	e8 2a ae fd ff       	call   0x417870
43ca46:	83 c4 10             	add    $0x10,%esp
43ca49:	ff 76 04             	push   0x4(%esi)
43ca4c:	e8 2f 36 00 00       	call   0x440080
43ca51:	8b 46 08             	mov    0x8(%esi),%eax
43ca54:	59                   	pop    %ecx
43ca55:	89 7e 04             	mov    %edi,0x4(%esi)
43ca58:	89 46 0c             	mov    %eax,0xc(%esi)
43ca5b:	5f                   	pop    %edi
43ca5c:	5e                   	pop    %esi
43ca5d:	c3                   	ret
43ca5e:	56                   	push   %esi
43ca5f:	8b 74 24 08          	mov    0x8(%esp),%esi
43ca63:	85 f6                	test   %esi,%esi
43ca65:	57                   	push   %edi
43ca66:	8b f9                	mov    %ecx,%edi
43ca68:	7d 05                	jge    0x43ca6f
43ca6a:	e8 dc 89 ff ff       	call   0x43544b
43ca6f:	3b 77 08             	cmp    0x8(%edi),%esi
43ca72:	7c 0d                	jl     0x43ca81
43ca74:	6a ff                	push   $0xffffffff
43ca76:	8d 46 01             	lea    0x1(%esi),%eax
43ca79:	50                   	push   %eax
43ca7a:	8b cf                	mov    %edi,%ecx
43ca7c:	e8 2e fe ff ff       	call   0x43c8af
43ca81:	8b 47 04             	mov    0x4(%edi),%eax
43ca84:	8a 4c 24 10          	mov    0x10(%esp),%cl
43ca88:	5f                   	pop    %edi
43ca89:	88 0c 06             	mov    %cl,(%esi,%eax,1)
43ca8c:	5e                   	pop    %esi
43ca8d:	c2 08 00             	ret    $0x8
43ca90:	55                   	push   %ebp
43ca91:	8b ec                	mov    %esp,%ebp
43ca93:	53                   	push   %ebx
43ca94:	8b 5d 08             	mov    0x8(%ebp),%ebx
43ca97:	85 db                	test   %ebx,%ebx
43ca99:	56                   	push   %esi
43ca9a:	8b f1                	mov    %ecx,%esi
43ca9c:	7c 65                	jl     0x43cb03
43ca9e:	8b 45 10             	mov    0x10(%ebp),%eax
43caa1:	85 c0                	test   %eax,%eax
43caa3:	7e 5e                	jle    0x43cb03
43caa5:	3b 5e 08             	cmp    0x8(%esi),%ebx
43caa8:	7c 0c                	jl     0x43cab6
43caaa:	6a ff                	push   $0xffffffff
43caac:	03 c3                	add    %ebx,%eax
43caae:	50                   	push   %eax
43caaf:	e8 fb fd ff ff       	call   0x43c8af
43cab4:	eb 37                	jmp    0x43caed
43cab6:	8b 45 10             	mov    0x10(%ebp),%eax
43cab9:	57                   	push   %edi
43caba:	8b 7e 08             	mov    0x8(%esi),%edi
43cabd:	6a ff                	push   $0xffffffff
43cabf:	03 c7                	add    %edi,%eax
43cac1:	50                   	push   %eax
43cac2:	e8 e8 fd ff ff       	call   0x43c8af
43cac7:	8b 46 04             	mov    0x4(%esi),%eax
43caca:	2b fb                	sub    %ebx,%edi
43cacc:	03 c3                	add    %ebx,%eax
43cace:	57                   	push   %edi
43cacf:	8b 7d 10             	mov    0x10(%ebp),%edi
43cad2:	50                   	push   %eax
43cad3:	03 c7                	add    %edi,%eax
43cad5:	50                   	push   %eax
43cad6:	e8 45 a5 fd ff       	call   0x417020
43cadb:	8b 46 04             	mov    0x4(%esi),%eax
43cade:	57                   	push   %edi
43cadf:	03 c3                	add    %ebx,%eax
43cae1:	6a 00                	push   $0x0
43cae3:	50                   	push   %eax
43cae4:	e8 57 b7 fd ff       	call   0x418240
43cae9:	83 c4 18             	add    $0x18,%esp
43caec:	5f                   	pop    %edi
43caed:	8b 45 10             	mov    0x10(%ebp),%eax
43caf0:	8b 4e 04             	mov    0x4(%esi),%ecx
43caf3:	8a 55 0c             	mov    0xc(%ebp),%dl
43caf6:	88 14 0b             	mov    %dl,(%ebx,%ecx,1)
43caf9:	43                   	inc    %ebx
43cafa:	48                   	dec    %eax
43cafb:	75 f3                	jne    0x43caf0
43cafd:	5e                   	pop    %esi
43cafe:	5b                   	pop    %ebx
43caff:	5d                   	pop    %ebp
43cb00:	c2 0c 00             	ret    $0xc
43cb03:	e8 43 89 ff ff       	call   0x43544b
43cb08:	cc                   	int3
43cb09:	56                   	push   %esi
43cb0a:	57                   	push   %edi