40389f:	6a 00                	push   $0x0
4038a1:	e8 0c 2e 00 00       	call   0x4066b2
4038a6:	2b 7d 14             	sub    0x14(%ebp),%edi
4038a9:	b8 93 24 49 92       	mov    $0x92492493,%eax
4038ae:	f7 ef                	imul   %edi
4038b0:	03 d7                	add    %edi,%edx
4038b2:	c1 fa 04             	sar    $0x4,%edx
4038b5:	8b ca                	mov    %edx,%ecx
4038b7:	c1 e9 1f             	shr    $0x1f,%ecx
4038ba:	03 ca                	add    %edx,%ecx
4038bc:	8b 55 0c             	mov    0xc(%ebp),%edx
4038bf:	52                   	push   %edx
4038c0:	83 f9 01             	cmp    $0x1,%ecx
4038c3:	0f 83 a5 00 00 00    	jae    0x40396e
4038c9:	8d 4d cc             	lea    -0x34(%ebp),%ecx
4038cc:	e8 1f eb ff ff       	call   0x4023f0
4038d1:	bb 02 00 00 00       	mov    $0x2,%ebx
4038d6:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4038d9:	8b 4d 14             	mov    0x14(%ebp),%ecx
4038dc:	8b 46 10             	mov    0x10(%esi),%eax
4038df:	c6 45 0c 00          	movb   $0x0,0xc(%ebp)
4038e3:	8b 7d 0c             	mov    0xc(%ebp),%edi
4038e6:	57                   	push   %edi
4038e7:	8b 7d 0c             	mov    0xc(%ebp),%edi
4038ea:	57                   	push   %edi
4038eb:	8d 51 1c             	lea    0x1c(%ecx),%edx
4038ee:	52                   	push   %edx
4038ef:	50                   	push   %eax
4038f0:	e8 7b 07 00 00       	call   0x404070
4038f5:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
4038f9:	8b 7e 10             	mov    0x10(%esi),%edi
4038fc:	8b cf                	mov    %edi,%ecx
4038fe:	2b 4d 14             	sub    0x14(%ebp),%ecx
403901:	b8 93 24 49 92       	mov    $0x92492493,%eax
403906:	f7 e9                	imul   %ecx
403908:	03 d1                	add    %ecx,%edx
40390a:	c1 fa 04             	sar    $0x4,%edx
40390d:	8b c2                	mov    %edx,%eax
40390f:	c1 e8 1f             	shr    $0x1f,%eax
403912:	03 c2                	add    %edx,%eax
403914:	c6 45 0c 00          	movb   $0x0,0xc(%ebp)
403918:	8b 55 0c             	mov    0xc(%ebp),%edx
40391b:	52                   	push   %edx
40391c:	b9 01 00 00 00       	mov    $0x1,%ecx
403921:	2b c8                	sub    %eax,%ecx
403923:	8b 45 0c             	mov    0xc(%ebp),%eax
403926:	50                   	push   %eax
403927:	8d 55 cc             	lea    -0x34(%ebp),%edx
40392a:	52                   	push   %edx
40392b:	57                   	push   %edi
40392c:	e8 2f 06 00 00       	call   0x403f60
403931:	89 5d fc             	mov    %ebx,-0x4(%ebp)
403934:	83 46 10 1c          	addl   $0x1c,0x10(%esi)
403938:	8b 76 10             	mov    0x10(%esi),%esi
40393b:	8b 45 14             	mov    0x14(%ebp),%eax
40393e:	8d 7e e4             	lea    -0x1c(%esi),%edi
403941:	8d 5d cc             	lea    -0x34(%ebp),%ebx
403944:	e8 87 05 00 00       	call   0x403ed0
403949:	8b cb                	mov    %ebx,%ecx
40394b:	eb 68                	jmp    0x4039b5
40394d:	8b 45 0c             	mov    0xc(%ebp),%eax
403950:	8b 4d 08             	mov    0x8(%ebp),%ecx
403953:	8b 79 10             	mov    0x10(%ecx),%edi
403956:	50                   	push   %eax
403957:	8b 45 14             	mov    0x14(%ebp),%eax
40395a:	83 c7 1c             	add    $0x1c,%edi
40395d:	83 c0 1c             	add    $0x1c,%eax
403960:	e8 9b 06 00 00       	call   0x404000
403965:	6a 00                	push   $0x0
403967:	6a 00                	push   $0x0
403969:	e8 44 2d 00 00       	call   0x4066b2
40396e:	8d 4d b0             	lea    -0x50(%ebp),%ecx
403971:	e8 7a ea ff ff       	call   0x4023f0
403976:	c7 45 fc 05 00 00 00 	movl   $0x5,-0x4(%ebp)
40397d:	8b 7e 10             	mov    0x10(%esi),%edi
403980:	c6 45 0c 00          	movb   $0x0,0xc(%ebp)
403984:	8b 45 0c             	mov    0xc(%ebp),%eax
403987:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40398a:	50                   	push   %eax
40398b:	51                   	push   %ecx
40398c:	57                   	push   %edi
40398d:	8d 5f e4             	lea    -0x1c(%edi),%ebx
403990:	57                   	push   %edi
403991:	8b cb                	mov    %ebx,%ecx
403993:	e8 d8 06 00 00       	call   0x404070
403998:	89 46 10             	mov    %eax,0x10(%esi)
40399b:	8b c3                	mov    %ebx,%eax
40399d:	8b 5d 14             	mov    0x14(%ebp),%ebx
4039a0:	e8 4b 05 00 00       	call   0x403ef0
4039a5:	8b 45 14             	mov    0x14(%ebp),%eax
4039a8:	8d 78 1c             	lea    0x1c(%eax),%edi
4039ab:	8d 5d b0             	lea    -0x50(%ebp),%ebx
4039ae:	e8 1d 05 00 00       	call   0x403ed0
4039b3:	8b cb                	mov    %ebx,%ecx
4039b5:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
4039bc:	e8 5f ea ff ff       	call   0x402420
4039c1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4039c4:	5f                   	pop    %edi
4039c5:	5e                   	pop    %esi
4039c6:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4039cd:	5b                   	pop    %ebx
4039ce:	8b e5                	mov    %ebp,%esp
4039d0:	5d                   	pop    %ebp
4039d1:	c2 10 00             	ret    $0x10
4039d4:	cc                   	int3
4039d5:	cc                   	int3
4039d6:	cc                   	int3
4039d7:	cc                   	int3
4039d8:	cc                   	int3
4039d9:	cc                   	int3
4039da:	cc                   	int3
4039db:	cc                   	int3
4039dc:	cc                   	int3
4039dd:	cc                   	int3
4039de:	cc                   	int3
4039df:	cc                   	int3
4039e0:	6a ff                	push   $0xffffffff
4039e2:	68 90 99 41 00       	push   $0x419990
4039e7:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4039ed:	50                   	push   %eax
4039ee:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
4039f5:	83 ec 44             	sub    $0x44,%esp
4039f8:	53                   	push   %ebx
4039f9:	6a 12                	push   $0x12
4039fb:	33 db                	xor    %ebx,%ebx
4039fd:	68 18 8a 42 00       	push   $0x428a18
403a02:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
403a06:	c7 44 24 24 0f 00 00 	movl   $0xf,0x24(%esp)
403a0d:	00
403a0e:	89 5c 24 20          	mov    %ebx,0x20(%esp)
403a12:	88 5c 24 10          	mov    %bl,0x10(%esp)
403a16:	e8 f5 f9 ff ff       	call   0x403410
403a1b:	8d 4c 24 20          	lea    0x20(%esp),%ecx
403a1f:	89 5c 24 50          	mov    %ebx,0x50(%esp)
403a23:	e8 69 14 00 00       	call   0x404e91
403a28:	6a ff                	push   $0xffffffff
403a2a:	c6 44 24 54 01       	movb   $0x1,0x54(%esp)
403a2f:	53                   	push   %ebx
403a30:	8d 44 24 0c          	lea    0xc(%esp),%eax
403a34:	50                   	push   %eax
403a35:	8d 4c 24 38          	lea    0x38(%esp),%ecx
403a39:	c7 44 24 2c 2c a2 41 	movl   $0x41a22c,0x2c(%esp)
403a40:	00
403a41:	c7 44 24 50 0f 00 00 	movl   $0xf,0x50(%esp)
403a48:	00
403a49:	89 5c 24 4c          	mov    %ebx,0x4c(%esp)
403a4d:	88 5c 24 3c          	mov    %bl,0x3c(%esp)
403a51:	e8 da f6 ff ff       	call   0x403130
403a56:	68 10 9c 42 00       	push   $0x429c10
403a5b:	8d 4c 24 24          	lea    0x24(%esp),%ecx
403a5f:	88 5c 24 54          	mov    %bl,0x54(%esp)
403a63:	51                   	push   %ecx
403a64:	c7 44 24 28 38 a2 41 	movl   $0x41a238,0x28(%esp)
403a6b:	00
403a6c:	e8 41 2c 00 00       	call   0x4066b2
403a71:	cc                   	int3
403a72:	cc                   	int3
403a73:	cc                   	int3
403a74:	cc                   	int3
403a75:	cc                   	int3
403a76:	cc                   	int3
403a77:	cc                   	int3
403a78:	cc                   	int3
403a79:	cc                   	int3
403a7a:	cc                   	int3
403a7b:	cc                   	int3
403a7c:	cc                   	int3
403a7d:	cc                   	int3
403a7e:	cc                   	int3
403a7f:	cc                   	int3
403a80:	83 ec 10             	sub    $0x10,%esp
403a83:	85 c9                	test   %ecx,%ecx
403a85:	77 1c                	ja     0x403aa3
403a87:	33 c9                	xor    %ecx,%ecx
403a89:	8d 14 cd 00 00 00 00 	lea    0x0(,%ecx,8),%edx
403a90:	2b d1                	sub    %ecx,%edx
403a92:	03 d2                	add    %edx,%edx
403a94:	03 d2                	add    %edx,%edx
403a96:	52                   	push   %edx
403a97:	e8 e1 1d 00 00       	call   0x40587d
403a9c:	83 c4 04             	add    $0x4,%esp
403a9f:	83 c4 10             	add    $0x10,%esp
403aa2:	c3                   	ret
403aa3:	83 c8 ff             	or     $0xffffffff,%eax
403aa6:	33 d2                	xor    %edx,%edx
403aa8:	f7 f1                	div    %ecx
403aaa:	83 f8 1c             	cmp    $0x1c,%eax
403aad:	73 da                	jae    0x403a89
403aaf:	8d 04 24             	lea    (%esp),%eax
403ab2:	50                   	push   %eax
403ab3:	8d 4c 24 08          	lea    0x8(%esp),%ecx
403ab7:	c7 44 24 04 00 00 00 	movl   $0x0,0x4(%esp)
403abe:	00
403abf:	e8 de 13 00 00       	call   0x404ea2
403ac4:	68 80 9c 42 00       	push   $0x429c80
403ac9:	8d 4c 24 08          	lea    0x8(%esp),%ecx
403acd:	51                   	push   %ecx
403ace:	c7 44 24 0c 08 a2 41 	movl   $0x41a208,0xc(%esp)
403ad5:	00
403ad6:	e8 d7 2b 00 00       	call   0x4066b2
403adb:	cc                   	int3
403adc:	cc                   	int3
403add:	cc                   	int3
403ade:	cc                   	int3
403adf:	cc                   	int3
403ae0:	8b 44 24 04          	mov    0x4(%esp),%eax
403ae4:	56                   	push   %esi
403ae5:	50                   	push   %eax
403ae6:	8b f1                	mov    %ecx,%esi
403ae8:	e8 73 d9 ff ff       	call   0x401460
403aed:	c7 06 38 a2 41 00    	movl   $0x41a238,(%esi)
403af3:	8b c6                	mov    %esi,%eax
403af5:	5e                   	pop    %esi
403af6:	c2 04 00             	ret    $0x4
403af9:	cc                   	int3
403afa:	cc                   	int3
403afb:	cc                   	int3
403afc:	cc                   	int3
403afd:	cc                   	int3
403afe:	cc                   	int3
403aff:	cc                   	int3
403b00:	55                   	push   %ebp
403b01:	8b ec                	mov    %esp,%ebp
403b03:	6a ff                	push   $0xffffffff
403b05:	68 c0 97 41 00       	push   $0x4197c0
403b0a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
403b10:	50                   	push   %eax
403b11:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
403b18:	83 ec 1c             	sub    $0x1c,%esp
403b1b:	8b 45 08             	mov    0x8(%ebp),%eax
403b1e:	53                   	push   %ebx
403b1f:	56                   	push   %esi
403b20:	8b f0                	mov    %eax,%esi
403b22:	57                   	push   %edi
403b23:	83 ce 0f             	or     $0xf,%esi
403b26:	8b f9                	mov    %ecx,%edi
403b28:	89 65 f0             	mov    %esp,-0x10(%ebp)
403b2b:	89 7d ec             	mov    %edi,-0x14(%ebp)
403b2e:	83 fe fe             	cmp    $0xfffffffe,%esi
403b31:	76 04                	jbe    0x403b37
403b33:	8b f0                	mov    %eax,%esi
403b35:	eb 22                	jmp    0x403b59
403b37:	8b 5f 18             	mov    0x18(%edi),%ebx
403b3a:	b8 ab aa aa aa       	mov    $0xaaaaaaab,%eax
403b3f:	f7 e6                	mul    %esi
403b41:	8b cb                	mov    %ebx,%ecx
403b43:	d1 e9                	shr    $1,%ecx
403b45:	d1 ea                	shr    $1,%edx
403b47:	3b d1                	cmp    %ecx,%edx
403b49:	73 0e                	jae    0x403b59
403b4b:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
403b50:	2b c1                	sub    %ecx,%eax
403b52:	3b d8                	cmp    %eax,%ebx
403b54:	77 03                	ja     0x403b59
403b56:	8d 34 19             	lea    (%ecx,%ebx,1),%esi
403b59:	33 db                	xor    %ebx,%ebx
403b5b:	8d 4e 01             	lea    0x1(%esi),%ecx
403b5e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
403b61:	3b cb                	cmp    %ebx,%ecx
403b63:	77 16                	ja     0x403b7b
403b65:	33 c9                	xor    %ecx,%ecx
403b67:	51                   	push   %ecx
403b68:	e8 10 1d 00 00       	call   0x40587d
403b6d:	83 c4 04             	add    $0x4,%esp
403b70:	8b d8                	mov    %eax,%ebx
403b72:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
403b79:	eb 60                	jmp    0x403bdb
403b7b:	83 c8 ff             	or     $0xffffffff,%eax
403b7e:	33 d2                	xor    %edx,%edx
403b80:	f7 f1                	div    %ecx
403b82:	83 f8 01             	cmp    $0x1,%eax
403b85:	73 e0                	jae    0x403b67
403b87:	8d 4d e8             	lea    -0x18(%ebp),%ecx
403b8a:	51                   	push   %ecx
403b8b:	8d 4d d8             	lea    -0x28(%ebp),%ecx
403b8e:	89 5d e8             	mov    %ebx,-0x18(%ebp)
403b91:	e8 0c 13 00 00       	call   0x404ea2
403b96:	68 80 9c 42 00       	push   $0x429c80
403b9b:	8d 55 d8             	lea    -0x28(%ebp),%edx
403b9e:	52                   	push   %edx
403b9f:	c7 45 d8 08 a2 41 00 	movl   $0x41a208,-0x28(%ebp)
403ba6:	e8 07 2b 00 00       	call   0x4066b2
403bab:	8b 45 08             	mov    0x8(%ebp),%eax
403bae:	8b 4d ec             	mov    -0x14(%ebp),%ecx
403bb1:	89 45 08             	mov    %eax,0x8(%ebp)
403bb4:	40                   	inc    %eax
403bb5:	89 65 f0             	mov    %esp,-0x10(%ebp)
403bb8:	50                   	push   %eax
403bb9:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
403bbd:	e8 be 00 00 00       	call   0x403c80
403bc2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
403bc5:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
403bcc:	b8 d2 3b 40 00       	mov    $0x403bd2,%eax
403bd1:	c3                   	ret
403bd2:	8b 7d ec             	mov    -0x14(%ebp),%edi
403bd5:	8b 75 08             	mov    0x8(%ebp),%esi
403bd8:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
403bdb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
403bde:	85 c9                	test   %ecx,%ecx
403be0:	76 20                	jbe    0x403c02
403be2:	83 7f 18 10          	cmpl   $0x10,0x18(%edi)
403be6:	72 05                	jb     0x403bed
403be8:	8b 47 04             	mov    0x4(%edi),%eax
403beb:	eb 03                	jmp    0x403bf0
403bed:	8d 47 04             	lea    0x4(%edi),%eax
403bf0:	51                   	push   %ecx
403bf1:	50                   	push   %eax
403bf2:	8d 46 01             	lea    0x1(%esi),%eax
403bf5:	50                   	push   %eax
403bf6:	53                   	push   %ebx
403bf7:	e8 9a 18 00 00       	call   0x405496
403bfc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
403bff:	83 c4 10             	add    $0x10,%esp
403c02:	83 7f 18 10          	cmpl   $0x10,0x18(%edi)
403c06:	72 0f                	jb     0x403c17
403c08:	8b 4f 04             	mov    0x4(%edi),%ecx
403c0b:	51                   	push   %ecx
403c0c:	e8 25 17 00 00       	call   0x405336
403c11:	8b 4d 0c             	mov    0xc(%ebp),%ecx
403c14:	83 c4 04             	add    $0x4,%esp
403c17:	8d 47 04             	lea    0x4(%edi),%eax
403c1a:	c6 00 00             	movb   $0x0,(%eax)
403c1d:	89 18                	mov    %ebx,(%eax)
403c1f:	89 77 18             	mov    %esi,0x18(%edi)
403c22:	89 4f 14             	mov    %ecx,0x14(%edi)
403c25:	83 fe 10             	cmp    $0x10,%esi
403c28:	72 02                	jb     0x403c2c
403c2a:	8b c3                	mov    %ebx,%eax
403c2c:	5f                   	pop    %edi
403c2d:	c6 04 08 00          	movb   $0x0,(%eax,%ecx,1)
403c31:	8b 4d f4             	mov    -0xc(%ebp),%ecx
403c34:	5e                   	pop    %esi
403c35:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
403c3c:	5b                   	pop    %ebx
403c3d:	8b e5                	mov    %ebp,%esp
403c3f:	5d                   	pop    %ebp
403c40:	c2 08 00             	ret    $0x8
403c43:	8b 75 ec             	mov    -0x14(%ebp),%esi
403c46:	83 7e 18 10          	cmpl   $0x10,0x18(%esi)
403c4a:	72 0c                	jb     0x403c58
403c4c:	8b 56 04             	mov    0x4(%esi),%edx
403c4f:	52                   	push   %edx
403c50:	e8 e1 16 00 00       	call   0x405336
403c55:	83 c4 04             	add    $0x4,%esp
403c58:	6a 00                	push   $0x0
403c5a:	c7 46 18 0f 00 00 00 	movl   $0xf,0x18(%esi)
403c61:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
403c68:	6a 00                	push   $0x0
403c6a:	c6 46 04 00          	movb   $0x0,0x4(%esi)
403c6e:	e8 3f 2a 00 00       	call   0x4066b2