403745:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
403749:	6a 04                	push   $0x4
40374b:	58                   	pop    %eax
40374c:	c1 e0 00             	shl    $0x0,%eax
40374f:	8b 0d 18 60 41 00    	mov    0x416018,%ecx
403755:	89 4c 05 f8          	mov    %ecx,-0x8(%ebp,%eax,1)
403759:	68 d0 f1 40 00       	push   $0x40f1d0
40375e:	e8 e0 fe ff ff       	call   0x403643
403763:	c9                   	leave
403764:	c3                   	ret
403765:	55                   	push   %ebp
403766:	8b ec                	mov    %esp,%ebp
403768:	51                   	push   %ecx
403769:	8b 45 18             	mov    0x18(%ebp),%eax
40376c:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
40376f:	53                   	push   %ebx
403770:	56                   	push   %esi
403771:	8b 58 10             	mov    0x10(%eax),%ebx
403774:	57                   	push   %edi
403775:	8b 78 0c             	mov    0xc(%eax),%edi
403778:	8b d7                	mov    %edi,%edx
40377a:	89 55 fc             	mov    %edx,-0x4(%ebp)
40377d:	8b f2                	mov    %edx,%esi
40377f:	85 c9                	test   %ecx,%ecx
403781:	78 2d                	js     0x4037b0
403783:	6b c2 14             	imul   $0x14,%edx,%eax
403786:	83 c3 08             	add    $0x8,%ebx
403789:	03 c3                	add    %ebx,%eax
40378b:	8b 5d 10             	mov    0x10(%ebp),%ebx
40378e:	83 fa ff             	cmp    $0xffffffff,%edx
403791:	74 3c                	je     0x4037cf
403793:	83 e8 14             	sub    $0x14,%eax
403796:	4a                   	dec    %edx
403797:	39 58 fc             	cmp    %ebx,-0x4(%eax)
40379a:	7d 04                	jge    0x4037a0
40379c:	3b 18                	cmp    (%eax),%ebx
40379e:	7e 05                	jle    0x4037a5
4037a0:	83 fa ff             	cmp    $0xffffffff,%edx
4037a3:	75 07                	jne    0x4037ac
4037a5:	8b 75 fc             	mov    -0x4(%ebp),%esi
4037a8:	49                   	dec    %ecx
4037a9:	89 55 fc             	mov    %edx,-0x4(%ebp)
4037ac:	85 c9                	test   %ecx,%ecx
4037ae:	79 de                	jns    0x40378e
4037b0:	42                   	inc    %edx
4037b1:	3b f7                	cmp    %edi,%esi
4037b3:	77 1a                	ja     0x4037cf
4037b5:	3b d6                	cmp    %esi,%edx
4037b7:	77 16                	ja     0x4037cf
4037b9:	8b 45 08             	mov    0x8(%ebp),%eax
4037bc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4037bf:	5f                   	pop    %edi
4037c0:	89 70 0c             	mov    %esi,0xc(%eax)
4037c3:	5e                   	pop    %esi
4037c4:	89 08                	mov    %ecx,(%eax)
4037c6:	89 50 04             	mov    %edx,0x4(%eax)
4037c9:	89 48 08             	mov    %ecx,0x8(%eax)
4037cc:	5b                   	pop    %ebx
4037cd:	c9                   	leave
4037ce:	c3                   	ret
4037cf:	e8 ca 37 00 00       	call   0x406f9e
4037d4:	cc                   	int3
4037d5:	55                   	push   %ebp
4037d6:	8b ec                	mov    %esp,%ebp
4037d8:	83 ec 18             	sub    $0x18,%esp
4037db:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
4037df:	8d 45 e8             	lea    -0x18(%ebp),%eax
4037e2:	33 05 14 60 41 00    	xor    0x416014,%eax
4037e8:	8b 4d 08             	mov    0x8(%ebp),%ecx
4037eb:	89 45 f0             	mov    %eax,-0x10(%ebp)
4037ee:	8b 45 0c             	mov    0xc(%ebp),%eax
4037f1:	89 45 f4             	mov    %eax,-0xc(%ebp)
4037f4:	8b 45 14             	mov    0x14(%ebp),%eax
4037f7:	40                   	inc    %eax
4037f8:	c7 45 ec ab 39 40 00 	movl   $0x4039ab,-0x14(%ebp)
4037ff:	89 4d f8             	mov    %ecx,-0x8(%ebp)
403802:	89 45 fc             	mov    %eax,-0x4(%ebp)
403805:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40380b:	89 45 e8             	mov    %eax,-0x18(%ebp)
40380e:	8d 45 e8             	lea    -0x18(%ebp),%eax
403811:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
403817:	ff 75 18             	push   0x18(%ebp)
40381a:	51                   	push   %ecx
40381b:	ff 75 10             	push   0x10(%ebp)
40381e:	e8 6d 17 00 00       	call   0x404f90
403823:	8b c8                	mov    %eax,%ecx
403825:	8b 45 e8             	mov    -0x18(%ebp),%eax
403828:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40382e:	8b c1                	mov    %ecx,%eax
403830:	c9                   	leave
403831:	c3                   	ret
403832:	55                   	push   %ebp
403833:	8b ec                	mov    %esp,%ebp
403835:	83 ec 40             	sub    $0x40,%esp
403838:	53                   	push   %ebx
403839:	81 7d 08 23 01 00 00 	cmpl   $0x123,0x8(%ebp)
403840:	75 12                	jne    0x403854
403842:	b8 fc 38 40 00       	mov    $0x4038fc,%eax
403847:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40384a:	89 01                	mov    %eax,(%ecx)
40384c:	33 c0                	xor    %eax,%eax
40384e:	40                   	inc    %eax
40384f:	e9 d1 00 00 00       	jmp    0x403925
403854:	83 65 c0 00          	andl   $0x0,-0x40(%ebp)
403858:	c7 45 c4 48 3a 40 00 	movl   $0x403a48,-0x3c(%ebp)
40385f:	a1 14 60 41 00       	mov    0x416014,%eax
403864:	8d 4d c0             	lea    -0x40(%ebp),%ecx
403867:	33 c1                	xor    %ecx,%eax
403869:	89 45 c8             	mov    %eax,-0x38(%ebp)
40386c:	8b 45 18             	mov    0x18(%ebp),%eax
40386f:	89 45 cc             	mov    %eax,-0x34(%ebp)
403872:	8b 45 0c             	mov    0xc(%ebp),%eax
403875:	89 45 d0             	mov    %eax,-0x30(%ebp)
403878:	8b 45 1c             	mov    0x1c(%ebp),%eax
40387b:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40387e:	8b 45 20             	mov    0x20(%ebp),%eax
403881:	89 45 d8             	mov    %eax,-0x28(%ebp)
403884:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
403888:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
40388c:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
403890:	89 65 dc             	mov    %esp,-0x24(%ebp)
403893:	89 6d e0             	mov    %ebp,-0x20(%ebp)
403896:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40389c:	89 45 c0             	mov    %eax,-0x40(%ebp)
40389f:	8d 45 c0             	lea    -0x40(%ebp),%eax
4038a2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4038a8:	8b 45 08             	mov    0x8(%ebp),%eax
4038ab:	ff 30                	push   (%eax)
4038ad:	e8 fe b4 00 00       	call   0x40edb0
4038b2:	59                   	pop    %ecx
4038b3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4038b6:	89 01                	mov    %eax,(%ecx)
4038b8:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
4038bf:	8b 45 08             	mov    0x8(%ebp),%eax
4038c2:	89 45 e8             	mov    %eax,-0x18(%ebp)
4038c5:	8b 45 10             	mov    0x10(%ebp),%eax
4038c8:	89 45 ec             	mov    %eax,-0x14(%ebp)
4038cb:	e8 86 08 00 00       	call   0x404156
4038d0:	8b 40 08             	mov    0x8(%eax),%eax
4038d3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4038d6:	a1 18 f1 40 00       	mov    0x40f118,%eax
4038db:	89 45 f4             	mov    %eax,-0xc(%ebp)
4038de:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4038e1:	ff 55 f4             	call   *-0xc(%ebp)
4038e4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4038e7:	89 45 f0             	mov    %eax,-0x10(%ebp)
4038ea:	8d 45 e8             	lea    -0x18(%ebp),%eax
4038ed:	50                   	push   %eax
4038ee:	8b 45 08             	mov    0x8(%ebp),%eax
4038f1:	ff 30                	push   (%eax)
4038f3:	ff 55 f0             	call   *-0x10(%ebp)
4038f6:	59                   	pop    %ecx
4038f7:	59                   	pop    %ecx
4038f8:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4038fc:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
403900:	74 17                	je     0x403919
403902:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
403909:	8b 03                	mov    (%ebx),%eax
40390b:	8b 5d c0             	mov    -0x40(%ebp),%ebx
40390e:	89 03                	mov    %eax,(%ebx)
403910:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
403917:	eb 09                	jmp    0x403922
403919:	8b 45 c0             	mov    -0x40(%ebp),%eax
40391c:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
403922:	8b 45 f8             	mov    -0x8(%ebp),%eax
403925:	5b                   	pop    %ebx
403926:	c9                   	leave
403927:	c3                   	ret
403928:	55                   	push   %ebp
403929:	8b ec                	mov    %esp,%ebp
40392b:	51                   	push   %ecx
40392c:	53                   	push   %ebx
40392d:	8b 45 0c             	mov    0xc(%ebp),%eax
403930:	83 c0 0c             	add    $0xc,%eax
403933:	89 45 fc             	mov    %eax,-0x4(%ebp)
403936:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
40393d:	8b 03                	mov    (%ebx),%eax
40393f:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
403945:	8b 45 08             	mov    0x8(%ebp),%eax
403948:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40394b:	8b 6d fc             	mov    -0x4(%ebp),%ebp
40394e:	8b 63 fc             	mov    -0x4(%ebx),%esp
403951:	ff e0                	jmp    *%eax
403953:	5b                   	pop    %ebx
403954:	c9                   	leave
403955:	c2 08 00             	ret    $0x8
403958:	55                   	push   %ebp
403959:	8b ec                	mov    %esp,%ebp
40395b:	51                   	push   %ecx
40395c:	51                   	push   %ecx
40395d:	53                   	push   %ebx
40395e:	56                   	push   %esi
40395f:	57                   	push   %edi
403960:	64 8b 35 00 00 00 00 	mov    %fs:0x0,%esi
403967:	89 75 f8             	mov    %esi,-0x8(%ebp)
40396a:	c7 45 fc 82 39 40 00 	movl   $0x403982,-0x4(%ebp)
403971:	6a 00                	push   $0x0
403973:	ff 75 0c             	push   0xc(%ebp)
403976:	ff 75 fc             	push   -0x4(%ebp)
403979:	ff 75 08             	push   0x8(%ebp)
40397c:	ff 15 50 f0 40 00    	call   *0x40f050
403982:	8b 45 0c             	mov    0xc(%ebp),%eax
403985:	8b 40 04             	mov    0x4(%eax),%eax
403988:	83 e0 fd             	and    $0xfffffffd,%eax
40398b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40398e:	89 41 04             	mov    %eax,0x4(%ecx)
403991:	64 8b 3d 00 00 00 00 	mov    %fs:0x0,%edi
403998:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40399b:	89 3b                	mov    %edi,(%ebx)
40399d:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
4039a4:	5f                   	pop    %edi
4039a5:	5e                   	pop    %esi
4039a6:	5b                   	pop    %ebx
4039a7:	c9                   	leave
4039a8:	c2 08 00             	ret    $0x8
4039ab:	55                   	push   %ebp
4039ac:	8b ec                	mov    %esp,%ebp
4039ae:	56                   	push   %esi
4039af:	fc                   	cld
4039b0:	8b 75 0c             	mov    0xc(%ebp),%esi
4039b3:	8b 4e 08             	mov    0x8(%esi),%ecx
4039b6:	33 ce                	xor    %esi,%ecx
4039b8:	e8 78 fc ff ff       	call   0x403635
4039bd:	6a 00                	push   $0x0
4039bf:	56                   	push   %esi
4039c0:	ff 76 14             	push   0x14(%esi)
4039c3:	ff 76 0c             	push   0xc(%esi)
4039c6:	6a 00                	push   $0x0
4039c8:	ff 75 10             	push   0x10(%ebp)
4039cb:	ff 76 10             	push   0x10(%esi)
4039ce:	ff 75 08             	push   0x8(%ebp)
4039d1:	e8 30 11 00 00       	call   0x404b06
4039d6:	83 c4 20             	add    $0x20,%esp
4039d9:	5e                   	pop    %esi
4039da:	5d                   	pop    %ebp
4039db:	c3                   	ret
4039dc:	55                   	push   %ebp
4039dd:	8b ec                	mov    %esp,%ebp
4039df:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4039e2:	56                   	push   %esi
4039e3:	8b 75 08             	mov    0x8(%ebp),%esi
4039e6:	89 0e                	mov    %ecx,(%esi)
4039e8:	e8 69 07 00 00       	call   0x404156
4039ed:	8b 48 24             	mov    0x24(%eax),%ecx
4039f0:	89 4e 04             	mov    %ecx,0x4(%esi)
4039f3:	e8 5e 07 00 00       	call   0x404156
4039f8:	89 70 24             	mov    %esi,0x24(%eax)
4039fb:	8b c6                	mov    %esi,%eax
4039fd:	5e                   	pop    %esi
4039fe:	5d                   	pop    %ebp
4039ff:	c3                   	ret
403a00:	55                   	push   %ebp
403a01:	8b ec                	mov    %esp,%ebp
403a03:	56                   	push   %esi
403a04:	e8 4d 07 00 00       	call   0x404156
403a09:	8b 75 08             	mov    0x8(%ebp),%esi
403a0c:	3b 70 24             	cmp    0x24(%eax),%esi
403a0f:	75 0e                	jne    0x403a1f
403a11:	8b 76 04             	mov    0x4(%esi),%esi
403a14:	e8 3d 07 00 00       	call   0x404156
403a19:	89 70 24             	mov    %esi,0x24(%eax)
403a1c:	5e                   	pop    %esi
403a1d:	5d                   	pop    %ebp
403a1e:	c3                   	ret
403a1f:	e8 32 07 00 00       	call   0x404156
403a24:	8b 48 24             	mov    0x24(%eax),%ecx
403a27:	83 c1 04             	add    $0x4,%ecx
403a2a:	eb 07                	jmp    0x403a33
403a2c:	3b f0                	cmp    %eax,%esi
403a2e:	74 0b                	je     0x403a3b
403a30:	8d 48 04             	lea    0x4(%eax),%ecx
403a33:	8b 01                	mov    (%ecx),%eax
403a35:	85 c0                	test   %eax,%eax
403a37:	74 09                	je     0x403a42
403a39:	eb f1                	jmp    0x403a2c
403a3b:	8b 46 04             	mov    0x4(%esi),%eax
403a3e:	89 01                	mov    %eax,(%ecx)
403a40:	eb da                	jmp    0x403a1c
403a42:	e8 57 35 00 00       	call   0x406f9e
403a47:	cc                   	int3
403a48:	55                   	push   %ebp
403a49:	8b ec                	mov    %esp,%ebp
403a4b:	51                   	push   %ecx
403a4c:	53                   	push   %ebx
403a4d:	fc                   	cld
403a4e:	8b 45 0c             	mov    0xc(%ebp),%eax
403a51:	8b 48 08             	mov    0x8(%eax),%ecx
403a54:	33 4d 0c             	xor    0xc(%ebp),%ecx
403a57:	e8 d9 fb ff ff       	call   0x403635
403a5c:	8b 45 08             	mov    0x8(%ebp),%eax
403a5f:	8b 40 04             	mov    0x4(%eax),%eax
403a62:	83 e0 66             	and    $0x66,%eax
403a65:	74 11                	je     0x403a78
403a67:	8b 45 0c             	mov    0xc(%ebp),%eax
403a6a:	c7 40 24 01 00 00 00 	movl   $0x1,0x24(%eax)
403a71:	33 c0                	xor    %eax,%eax
403a73:	40                   	inc    %eax
403a74:	eb 6c                	jmp    0x403ae2
403a76:	eb 6a                	jmp    0x403ae2
403a78:	6a 01                	push   $0x1
403a7a:	8b 45 0c             	mov    0xc(%ebp),%eax
403a7d:	ff 70 18             	push   0x18(%eax)
403a80:	8b 45 0c             	mov    0xc(%ebp),%eax
403a83:	ff 70 14             	push   0x14(%eax)
403a86:	8b 45 0c             	mov    0xc(%ebp),%eax
403a89:	ff 70 0c             	push   0xc(%eax)
403a8c:	6a 00                	push   $0x0
403a8e:	ff 75 10             	push   0x10(%ebp)
403a91:	8b 45 0c             	mov    0xc(%ebp),%eax
403a94:	ff 70 10             	push   0x10(%eax)
403a97:	ff 75 08             	push   0x8(%ebp)
403a9a:	e8 67 10 00 00       	call   0x404b06
403a9f:	83 c4 20             	add    $0x20,%esp
403aa2:	8b 45 0c             	mov    0xc(%ebp),%eax
403aa5:	83 78 24 00          	cmpl   $0x0,0x24(%eax)
403aa9:	75 0b                	jne    0x403ab6
403aab:	ff 75 08             	push   0x8(%ebp)
403aae:	ff 75 0c             	push   0xc(%ebp)
403ab1:	e8 a2 fe ff ff       	call   0x403958
403ab6:	6a 00                	push   $0x0
403ab8:	6a 00                	push   $0x0
403aba:	6a 00                	push   $0x0
403abc:	6a 00                	push   $0x0
403abe:	6a 00                	push   $0x0
403ac0:	8d 45 fc             	lea    -0x4(%ebp),%eax
403ac3:	50                   	push   %eax
403ac4:	68 23 01 00 00       	push   $0x123
403ac9:	e8 64 fd ff ff       	call   0x403832
403ace:	83 c4 1c             	add    $0x1c,%esp
403ad1:	8b 45 fc             	mov    -0x4(%ebp),%eax
403ad4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
403ad7:	8b 63 1c             	mov    0x1c(%ebx),%esp
403ada:	8b 6b 20             	mov    0x20(%ebx),%ebp
403add:	ff e0                	jmp    *%eax
403adf:	33 c0                	xor    %eax,%eax
403ae1:	40                   	inc    %eax
403ae2:	5b                   	pop    %ebx
403ae3:	c9                   	leave
403ae4:	c3                   	ret
403ae5:	55                   	push   %ebp
403ae6:	8b ec                	mov    %esp,%ebp
403ae8:	83 ec 08             	sub    $0x8,%esp
403aeb:	53                   	push   %ebx
403aec:	56                   	push   %esi
403aed:	57                   	push   %edi
403aee:	fc                   	cld
403aef:	89 45 fc             	mov    %eax,-0x4(%ebp)
403af2:	33 c0                	xor    %eax,%eax
403af4:	50                   	push   %eax
403af5:	50                   	push   %eax